为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET Core Web API异常处理

ASP.NET Core Web API异常处理

C#
MMMHUHU 2019-09-18 11:07:30
在使用常规ASP.NET Web API多年后,我开始使用ASP.NET Core作为我的新REST API项目。我没有看到在ASP.NET Core Web API中处理异常的好方法。我试图实现异常处理过滤器/属性:public class ErrorHandlingFilter : ExceptionFilterAttribute{    public override void OnException(ExceptionContext context)    {        HandleExceptionAsync(context);        context.ExceptionHandled = true;    }    private static void HandleExceptionAsync(ExceptionContext context)    {        var exception = context.Exception;        if (exception is MyNotFoundException)            SetExceptionResult(context, exception, HttpStatusCode.NotFound);        else if (exception is MyUnauthorizedException)            SetExceptionResult(context, exception, HttpStatusCode.Unauthorized);        else if (exception is MyException)            SetExceptionResult(context, exception, HttpStatusCode.BadRequest);        else            SetExceptionResult(context, exception, HttpStatusCode.InternalServerError);    }    private static void SetExceptionResult(        ExceptionContext context,         Exception exception,         HttpStatusCode code)    {        context.Result = new JsonResult(new ApiResponse(exception))        {            StatusCode = (int)code        };    }}这是我的启动过滤器注册:services.AddMvc(options =>{    options.Filters.Add(new AuthorizationFilter());    options.Filters.Add(new ErrorHandlingFilter());});我遇到的问题是,当我AuthorizationFilter的异常发生时,它没有被处理ErrorHandlingFilter。我希望它能够像旧的ASP.NET Web API一样被捕获。那么如何捕获所有应用程序异常以及Action Filters的任何异常?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 1288 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信