在asp.net core mvc中,如果有未处理的异常发生后,会返回http500错误,对于最终用户来说,显然不是特别友好。那如何对于这些未处理的异常显示统一的错误提示页面呢?
在asp.net core中提供了异常处理中间件,具体方法如下:
IApplicationBuilder.UseExceptionHandler(string errorHandlingPath);
通过上面的方法,就在http请求处理管道中增加了异常处理中间件,这个中间件会捕获所有未处理的异常,并引导到配置的错误处理地址(mvc中可以定义专门用于处理异常的控制器)。
实例:
Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
......
app.UseExceptionHandler("/Error/Show");
......
}
在使用的时候,唯一需要注意的是这个中间件注册的位置,一般是注册到整个请求处理管道的最顶端。