在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");
......
}
在使用的時候,唯一需要注意的是這個中間件注冊的位置,一般是注冊到整個請求處理管道的最頂端。