MVC使用異常過濾器處理異常
在mvc的開發過程中,我們可能會遇到一些程式碼錯誤導致的異常,如下圖所示,展示了一個除數為0的異常。
在mvc裡,自動為我們提供了一種異常處理器,並且應用在所有控制器上。
我們開發時所有的錯誤都由它捕捉並展示,因此我們看到執行這個action的介面如下所示。
在給使用者使用之後,可能還會出現其他錯誤,這樣處理錯誤的介面客戶可能並不喜歡。因此我們可以把錯誤的介面處理下,自定義一個異常處理器並配置異常處理的action介面。
第一步,先建立一個異常處理過濾器。
在Filters資料夾裡建立類,類名為 自定義+Attribute,如我建立的類名為myEorroAttribute。然後在繼承FilterAttribute和IExceptionFilter,表明這是一個異常過濾器。選中IExceptionFilter,右擊,快速實現方法,出現OnException用於執行完view後接收異常。介面如下圖所示。
輸入如圖所示程式碼,定義一個變數用來接收異常的原因,儲存到一個session裡。再把異常狀態改變為已處理,然後轉跳到自定義的處理異常的action,來展示異常。
第二步,建立action展示異常。
第一步裡跳轉到login控制器的error介面處理異常,所以我們在login控制器裡建立error
然後新增檢視,在檢視裡展示錯誤並告訴使用者相關資訊。
第三步,配置我們自己建立的異常過濾器
在這裡,我選擇的是全域性應用我自己建立的異常過濾器。要注意的是,由於系統建立的異常過濾器也是全域性應用,所以要註釋掉。
配置之後再執行,結果如下圖所示
總結:自己開發時,建議使用系統預設的異常過濾器,這樣有錯誤時,我們更能清楚知道錯誤在哪。
給使用者時建議使用自己的異常處理器,介面還可以設計的再好看一點。記得註釋掉系統預設的異常過濾器。
相關文章
- DRF 過濾排序分頁異常處理排序
- 異常篇——異常處理
- DRF之過濾排序分頁異常處理排序
- ASP.NET MVC 異常處理ASP.NETMVC
- 異常處理過程
- Spring MVC統一異常處理SpringMVC
- 異常-throws的方式處理異常
- 異常處理與異常函式函式
- 異常處理
- 迭代器和異常處理
- Java 異常表與異常處理原理Java
- restframework 異常處理及自定義異常RESTFramework
- spring boot 實現監聽器、過濾器、全域性異常處理Spring Boot過濾器
- 某次BW 異常處理過程
- JavaScript 異常處理JavaScript
- ThinkPHP 異常處理PHP
- React 異常處理React
- 08、異常處理
- Java 異常處理Java
- JAVA 異常處理Java
- JAVA異常處理Java
- Abp 異常處理
- oracle異常處理Oracle
- PowerShell 異常處理
- plsql異常處理SQL
- Swift 異常處理Swift
- JS異常處理JS
- app異常處理APP
- Oracle 處理異常Oracle
- MySQL異常處理MySql
- 異常處理 (轉)
- windows核心程式設計---未處理異常,向量化異常處理與C++異常Windows程式設計C++
- 異常處理機制(二)之異常處理與捕獲
- Spring系列(七) Spring MVC 異常處理SpringMVC
- GoldenGate常見異常處理Go
- Java 異常處理:使用和思考Java
- 異常處理遇到過的那些坑
- 異常-try...catch的方式處理異常1