最近在项目中使用.net core开发server端API,每个action中都需要同样的code来处理系统内部异常和自定义的异常错误,于是想把这部分提出来,统一处理下,最先想到的就是使用Middleware,简单试了下,效果不错。
1. 先定义异常处理中间件
按照微软中间件的写法,在处理请求出添加try catch结构,并在catch中进行你需要的处理,具体如下:
1 | public class ExceptionMiddleware |
此处为纯Web Api的异常处理方法,catch后直接返回json对象,MVC可以catch后跳转到固定的错误页面。
2. Startup中注册异常处理中间件
定义好异常处理类,需要在Startup中进行注册声明,这样请求才会经过自己定义的异常处理中间件,code如下:
1 | public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) |
注册时,需要注意注册顺序,异常处理中间件一般在第一个注册