我正在寻找在以下场景中捕获错误的可接受解决方案: 我有一个与数据库交互的asp.net Web服务。我通过jquery的$ ajax函数与Web服务进行交互。
我想知道错误捕获的可接受的稳定方法是什么。从Web服务接收数据时,我的方案中存在两种类型的错误:
Ajax错误可能陷入$ ajax函数的错误部分。我将数据库错误捕获到Web服务中,到目前为止,我只想出一个如何将它们传递给用户的想法 - 将它们打包到结果数组中。但这个解决方案很尴尬。还有更好的想法吗?
以下是我用于访问asp.net Web服务的代码示例:
$.ajax({
type: "POST",
url: "http://localhost/WebServices/Service.asmx/GetBillingEntities",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
var results = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
DisplayResults();
},
error: function(xhr, status, error) {
// Display a generic error for now.
alert("AJAX Error!");
}
});
那么数据库结果应该进入结果数组并手动解压缩吗?有更好的系统吗? 谢谢!
答案 0 :(得分:5)
得到了它:
$(document).ready(function() {
02 $.ajax({
03 type: "GET",
04 url: "AJAX/DivideByZero",
05 dataType: "json",
06 success: function(data) {
07 if (data) {
08 alert("Success!!!");
09 }
10 }, error: function(xhr, status, error) {
11 DisplayError(xhr);
12 }
13 });
14 });
15
16 function DisplayError(xhr) {
17 var msg = JSON.parse(xhr.responseText);
18 alert(msg.Message);
19 }
答案 1 :(得分:0)
您可以做的是在Web服务的GetBillingEntities方法中抛出异常。捕获异常,记录一些细节,然后重新抛出它。如果您的方法抛出异常,它应该被捕获在“error:”块中。
所以基本上你处理服务中的错误数据,并处理如何在“error:”块中向用户显示错误。