Tôi có một lớp ngoại lệ tùy chỉnh như sau:Thêm thuộc tính bổ sung trong Tuỳ chỉnh ngoại lệ trở về AJAX chức năng
<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
Tôi đang sử dụng này đối với trường hợp nhất định trong lợi nhuận từ phản ứng AJAX.
Trong hàm sai số của phản ứng AJAX của tôi Tôi xác định rằng lỗi là loại tùy chỉnh của tôi như thế này:
....
ajax code....
.error = function (xhr, text, message) {
var parsed = JSON.parse(xhr.responseText);
var isSamCustomError = (parsed.ExceptionType).toLowerCase().indexOf('samexception') >= 0;
.... etc....
này cho phép tôi gửi lại một phản ứng cụ thể cho khách hàng nếu lỗi là của loại tùy chỉnh của tôi.
NHƯNG ... Tôi có vẻ không nhận được nó để đăng tài sản bổ sung OfferBugSend
cho khách hàng để mã AJAX xử lý trường hợp này theo cách khác.
console.log("OfferBugSend: " + parsed.OfferBugSend)
đang hiển thị không xác định, và nếu tôi kiểm tra phản ứng, điều này là do xhr.responseText
chỉ chứa các thuộc tính:
ExceptionType
Message
StackTrace
Các tính chất này từ các lớp cơ sở Exception
nhưng nó không phải là đi qua lớp tùy chỉnh của tôi các thuộc tính ...
Làm thế nào tôi có thể thực hiện điều đó?
Vui lòng đính kèm ví dụ về cách bạn gửi AJAX và ném 'SamException'. – codeDom
Tôi khuyên bạn nên thử nắm bắt mã bạn muốn. Nếu bạn nhấn ngoại lệ của bạn, hãy ném ngoại lệ đó lên từ BLL/DAL vào lớp Trình bày của bạn. Trong lớp bản trình bày của bạn, hãy cung cấp cách trả về loại ngoại lệ mới sẽ được chuyển đổi từ ngoại lệ của bạn. Ví dụ là, hãy thử bắt (ngoại lệ đặc biệt) {return new {.SpecialMessage = "IamError",. IsError = True}. Trong Ajax của bạn, kiểm tra IsError. – Programmer