在 ASP.NET Core Web API 中,异常处理是一个非常重要的环节,如果程序中出现未处理异常,就会生成响应报文。通过捕获和处理异常,我们可以确保应用程序的健壮性,并向用户提供友好的错误响应。ASP.NET Core 提供了一种机制,即异常筛选器(Exception Filters),它允许我们在全局范围内捕获和处理异常。为了规范化接口的格式,当系统中出现未处理异常的时候,我们需要统一给客户端返回如下格式的响应报文,{"code ":" 500" ,"message":"异常信息"}。
编写自定义的异常筛选器:
- public class MyExceptionFilter : IAsyncExceptionFilter
- {
- private readonly ILogger
_logger; - private readonly IHostEnvironment _hostEnvironment;
-
- public MyExceptionFilter(ILogger
logger, IHostEnvironment hostEnvironment ) - {
- _logger = logger;
- _hostEnvironment = hostEnvironment;
- }
-
- public Task OnExceptionAsync(ExceptionContext context)
- {