ASP.Net MVC - 如何在JSON操作中处理异常(返回JSON错误信息),还发布过滤器的异常?
我正在使用过滤器来记录由以下操作引发的异常:
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)?
没有找到相关结果
已邀请:
2 个回复
长拳
缝皋
过滤