Global Error Handler 有很多的方式,這次來介紹 System.Web.Http.Filters.ExceptionFilterAttribute,用它集中管理應用程式的例外,不需要在每一個動作包裝錯誤,你可以針對不同的例外進行處理,比如,有專門的 Filter 處理交易例外
2020-08-19
Global Error Handler 有很多的方式,這次來介紹 System.Web.Http.Filters.ExceptionFilterAttribute,用它集中管理應用程式的例外,不需要在每一個動作包裝錯誤,你可以針對不同的例外進行處理,比如,有專門的 Filter 處理交易例外
Web API 的 ExceptionFilterAttribute、IExceptionFilter 能幫我們處理應用程式等級的例外,但無法處理載體 (Host) 的例外,當使用 IIS 作為載體,假使發生未處理的例外時會出現黃頁,OWIN 作為載體時,ExceptionFilterAttribute、IExceptionFilter 卻攔截不到錯誤,此時應該改用 Microsoft.Owin.Diagnostics.IAppBuilder.UseErrorPage 擴充方法,接下來將會利用 Error Handler 這個情境,介紹 OWIN Middleware 的幾種使用方式。
有朋友問我,不想每個 Action 寫 try catch,怎麼在 Global ErrorHandler 紀錄相關參數,來,看看我怎麼做,以下將實作 HandleErrorAttribute
PS.若你的例外需要跟用戶互動,以下實作可能不適合
PS.無法捕捉IIS的例外,需要使用Elmah
上一篇 [ASP.NET MVC] 自訂Global ErrorHandler 紀錄請求參數 沒有處理到 Ajax,這篇繼續補完...