MVC使用異常過濾器處理異常

2021-10-25 22:16:13 字數 1156 閱讀 8520

在mvc的開發過程中,我們可能會遇到一些**錯誤導致的異常,如下圖所示,展示了乙個除數為0的異常。

在mvc裡,自動為我們提供了一種異常處理器,並且應用在所有控制器上。

在filters資料夾裡建立類,類名為 自定義+attribute,如我建立的類名為myeorroattribute。然後在繼承filterattribute和iexceptionfilter,表明這是乙個異常過濾器。選中iexceptionfilter,右擊,快速實現方法,出現onexception用於執行完view後接收異常。介面如下圖所示。

輸入如圖所示**,定義乙個變數用來接收異常的原因,儲存到乙個session裡。再把異常狀態改變為已處理,然後轉跳到自定義的處理異常的action,來展示異常。

第一步裡跳轉到login控制器的error介面處理異常,所以我們在login控制器裡建立error

然後新增檢視,在檢視裡展示錯誤並告訴使用者相關資訊。

在這裡,我選擇的是全域性應用我自己建立的異常過濾器。要注意的是,由於系統建立的異常過濾器也是全域性應用,所以要注釋掉。

配置之後再執行,結果如下圖所示

總結:自己開發時,建議使用系統預設的異常過濾器,這樣有錯誤時,我們更能清楚知道錯誤在哪。

給使用者時建議使用自己的異常處理器,介面還可以設計的再好看一點。記得注釋掉系統預設的異常過濾器。

MVC異常過濾器處理異常資訊

今天學習了mvc的過濾器,寫一下筆記!一 過濾器分類 1.authorization 許可權過濾器 一般用於登入驗證 或其他許可權管理 2.action 行為過濾器 可讓其執行自定義的方法 3.result 結果過濾器 可讓其執行自定義的方法 4.exception 異常過濾器 可獲取程式中的錯誤資...

Mvc 異常過濾器

mvc自帶乙個異常過濾器即handleerrorattribute 1.首先要進行配置web.config defaultredirect表示需要跳轉的錯誤頁面,mode需設定為 on或者 remoteonly.注 handleerror只處理伺服器500錯誤,404 400等這些錯誤不進行處理,如...

MVC異常過濾器 (錯誤頁)

using system using system.collections.generic using system.linq using system.web using system.web.mvc namespace mvc過濾器.controllers public actionresult...