J'ai une classe d'exception personnalisée comme suit:Ajouter des propriétés supplémentaires dans Exception personnalisée pour revenir à la fonction AJAX
<Serializable>
Public Class SamException
Inherits Exception
Public Sub New()
' Add other code for custom properties here.
End Sub
Public Property OfferBugSend As Boolean = True
Public Sub New(ByVal message As String)
MyBase.New(message)
' Add other code for custom properties here.
End Sub
Public Sub New(ByVal message As String, ByVal inner As Exception)
MyBase.New(message, inner)
' Add other code for custom properties here.
End Sub
End Class
J'utilise cela pour certains cas dans les déclarations de réponses AJAX.
Dans la fonction d'erreur de ma réponse AJAX Je suis déterminer que l'erreur est de mon type personnalisé comme celui-ci:
....
ajax code....
.error = function (xhr, text, message) {
var parsed = JSON.parse(xhr.responseText);
var isSamCustomError = (parsed.ExceptionType).toLowerCase().indexOf('samexception') >= 0;
.... etc....
Cela me permet de republier une réponse spécifique au client si l'erreur est de mon type personnalisé.
MAIS ... Je ne peux pas sembler l'obtenir pour signaler la propriété supplémentaire OfferBugSend
au client pour le code AJAX pour gérer ce cas différemment.
console.log("OfferBugSend: " + parsed.OfferBugSend)
est montrant non définie, et si je vérifie la réponse, c'est parce que xhr.responseText
ne contient que les propriétés:
ExceptionType
Message
StackTrace
Ces propriétés sont de la classe de base Exception
mais il ne passe pas ma classe personnalisée propriétés ...
Comment puis-je y arriver?
Veuillez joindre un exemple de code comment vous soumettez votre AJAX et lancez votre 'SamException'. – codeDom
Je conseille d'essayer d'attraper le code que vous voulez. Si vous frappez votre exception, renvoyez cette exception de BLL/DAL dans votre couche Présentation. Dans votre couche de présentation, fournissez un moyen de renvoyer le type d'exception Nouveau qui sera converti à partir de votre exception. L'exemple est, try catch (exception spéciale) {return new {.SpecialMessage = "IamError",. IsError = True}. Dans votre Ajax, vérifiez IsError. – Programmer