gpt4 book ai didi

c# - ASP.NET (C#) Web 服务中的异常处理

转载 作者:太空狗 更新时间:2023-10-30 01:35:15 24 4
gpt4 key购买 nike

我正在寻找一种方法将我的 asp.net 应用程序的 Web 服务中的异常消息传输到 ajax 错误回调函数。我所能找到的只是捕获从 Web 服务抛出到 C# 代码中的异常,但我是从 ajax 代码而不是 C# 代码调用我的服务。我想要的不仅仅是返回的 HTTP 状态代码。
这是我的服务代码的捕获 block :

catch (Exception ex)
{
var fault = new GenericFault { Message = ex.Message, Operation = "" };
throw new FaultException<GenericFault>(fault);
}
}

这是我的 ajax 错误回调:

 error: function (err) {
alert("The server encountered an error, please resubmit your request. If the problem persists, contact your administrator.");
return 'error occured';
}

我已经尝试抛出 Web 故障异常,但也没有达到目的,因为只有 HTTP 状态代码被传递。

最佳答案

找到答案。诀窍在于抛出正确的异常。
由于回调错误函数中捕获的错误在xhr对象中看到了详细信息。
所以你需要抛出 HttpException 传递状态代码和字符串消息。catch block 应该类似于:

catch (Exception ex)
{
throw new HttpException(500, ex.Message);

}

然后您的 ajax 回调将获得您从此处传递的 ex.message:

error: function (err) {
alert("The Detailed server error is "+err.responseJSON.Message);
return 'error occured';
}

关于c# - ASP.NET (C#) Web 服务中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26730132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com