У меня есть специальный класс исключения следующим образом:
<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
Я использую это для некоторых случаев в ответах от ответов AJAX.
В функции ошибки моего ответа AJAX я определяю, что ошибка относится к моему такому типу:
....
ajax code....
.error = function (xhr, text, message) {
var parsed = JSON.parse(xhr.responseText);
var isSamCustomError = (parsed.ExceptionType).toLowerCase().indexOf('samexception') >= 0;
.... etc....
Это позволяет мне отправить ответ на конкретный ответ клиенту, если ошибка относится к моему пользовательскому типу.
НО... Я не могу заставить его опубликовать дополнительное свойство OfferBugSend
для клиента, чтобы код AJAX обрабатывал этот случай по-разному.
console.log("OfferBugSend: " + parsed.OfferBugSend)
показывает undefined, и если я проверяю ответ, это потому, что xhr.responseText
содержит только свойства:
ExceptionType
Message
StackTrace
Эти свойства относятся к базовому классу Exception
, но не передают мои пользовательские свойства класса...
Как я могу это сделать?