我的要求是全球处理异常。我在整个业务逻辑层中抛出业务验证异常,我需要优雅地处理这些异常并向调用者返回正确的错误消息。
我正在关注这篇文章https://www.exceptionnotfound.net/the-asp-net-web-api-exception-handling-pipeline-a-guided-tour/
我很困惑,正如上面的文章所说,只有ExceptionFilters和ExceptionLoggers没有处理异常时才会调用ExceptionHandlers。
我有默认的Application Insights异常过滤器,我认为它会向AI报告异常。
本文指出我可以拥有尽可能多的异常记录器但只有一个异常处理程序,这很好。
因此...
我是否需要在所有控制器之上添加AiHandleErrorAttribute?或者它在没有添加控制器的情况下全局工作?以下代码已经存在。
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new ErrorHandler.AiHandleErrorAttribute());
}
如果我添加另一个异常记录器来记录Azure存储中的异常,它可以正常工作(以及上面的AI记录器)吗?
如果我在所有这些之后添加ExceptionHandler,它会被调用吗?由于上述记录器将被调用以记录异常吗?