VB에서 코딩 된 ASP.NET 사이트에 대한 모든 아약스 요구를 처리하기 위해 jQuery를 사용하고 있습니다. $ .ajax 내장 함수를 사용하여 코드 숨김 기능으로 POST하고 예외가 발생하면 함수가 종료되고 클라이언트 측에서 오류가 표시됩니다.jQuery 아약스를 사용할 때 VB.NET에서 예외를 catch하는 방법
코딩 할 때 디버깅을 어렵게 만드는 것 외에 더 큰 문제는 예외가 발생할 때 Global.asax의 Application_Error 함수가 실행되지 않는다는 것입니다. 이로 인해 생산 오류를 추적하는 것이 거의 불가능합니다.
왜 Application_Error가 발생하지 않습니까? Catch 문에서 코드 숨김 함수를 래핑하는 방법은 무엇입니까?
jQuery를 아약스 기능 :
$.ajax({
type: "POST",
url: "page.aspx/GetData",
data: "{'param':'" + param_value + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
processData(msg);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Error: " + textStatus + " - " + errorThrown);
}
});
VB.NET 기능 :
당신이 ScriptManager object에서 끌어와 함께 당신의 자바 스크립트를 등록 할 수 있습니다 닷넷 3.5으로,이 닷넷을 관리 할 수 있습니다<Script.Services.ScriptMethod()> _
<WebMethod()> _
Public Shared Function GetData(ByVal param As Integer) As String
'Parse some data
Return data
End Function
GetData 메서드 자체가 아니라 catch-all Application_Error에서 오류를 처리해야하는 이유가 있습니까? –
단순화를 위해. 예외 처리 코드는 모든 단일 웹 메서드에 대해 Catch 블록을 작성하는 대신 한 번만 작성하면됩니다. –