gpt4 book ai didi

c# - ASP.Net MVC - 如何处理 JSON 操作中的异常(返回 JSON 错误信息),同时发布过滤器的异常?

转载 作者:太空狗 更新时间:2023-10-29 23:53:16 24 4
gpt4 key购买 nike

我正在使用一个过滤器来记录看起来像这样的操作抛出的异常:

public override void OnActionExecuted(ActionExecutedContext filterContext) {
if (filterContext.Exception != null) {
//logger.Error(xxx);
}
base.OnActionExecuted(filterContext);
}

现在我想处理我所有的 JSON 操作以返回带有异常信息的 JSON 结果。这允许 Ajax 调用确定服务器上是否有任何错误,而不是接收错误页面源,这对 Ajax 是无用的。我已经在我的 AppControllerBase 中为 JSON 操作实现了这个方法:

public ActionResult JsonExceptionHandler(Func < object > action) {
try {
var res = action();
return res == null ? JsonSuccess() : JsonSuccess(res);
} catch (Exception exc) {
return JsonFailure(new {
errorMessage = exc.Message
});
}
}

这很好用,但显然 catch() 语句阻止所有过滤器处理异常,因为实际上没有抛出异常。有什么方法可以让过滤器 (filterContext.Exception) 保留异常?

最佳答案

您可以将异常存储在 RequestContext 中并在您的过滤器中拦截它。

关于c# - ASP.Net MVC - 如何处理 JSON 操作中的异常(返回 JSON 错误信息),同时发布过滤器的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/737101/

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