C 自定義異常的總結

2022-06-25 06:00:11 字數 1473 閱讀 1879

當asp.net mvc程式出現了異常,怎麼處理更加規範?

1. 最簡單的方法是設定節點

節點用於定義一些自定義錯誤資訊的資訊。此節點有mode和defaultredirect兩個屬性,其中defaultredirect屬性是乙個可選屬性,表示應用程式發生錯誤時重定向到的預設url,如果沒有指定該屬性則顯示一般性錯誤。mode屬性是乙個必選屬性,它有三個可能值,它們所代表的意義分別如下: on 表示在本地和遠端使用者都會看到自定義錯誤資訊。 off 禁用自定義錯誤資訊,本地和遠端使用者都會看到詳細的錯誤資訊。 remoteonly 表示本地使用者將看到詳細錯誤資訊,而遠端使用者將會看到自定義錯誤資訊。

這裡有必要說明一下本地使用者和遠端使用者的概念。當我們訪問asp.net應用程時所使用的機器和發布asp.net應用程式所使用的機器為同一臺機器時成為本地使用者,反之則稱之為遠端使用者。在開發除錯階段為了便於查詢錯誤mode屬性建議設定為off,而在部署階段應將mode屬性設定為on或者 remoteonly,以避免這些詳細的錯誤資訊暴露了程式**細節從而引來黑客的入侵。

子節點在節點下還包含有子節點,這個節點主要是根據伺服器的http錯誤狀態**而重定向到我們自定義的錯誤頁面,注意要使子節點下的配置生效,必須將節點的mode屬性設定為「on」。下面是乙個例子:

在上面的配置中如果使用者訪問的頁面不存在就會跳轉到404.htm頁面,如果使用者沒有許可權訪問請求的頁面則會跳轉到403.htm頁面,403.htm和404.htm頁面都是我們自己新增的頁面,我們可以在頁面中給出友好的錯誤提示。

2. 使用過濾器handleerrorattribute

3. 自定義顯示路徑

如果遇到異常後不單單是要自定義異常顯示,而且還需要進行日誌記錄。此時,可以通過繼承擴充套件handleerrorattribute來實現新的 filter,然後在lobal.ascx中對所有的action進行註冊,filters.add(new myhandleerrorattribute()).在這裡詳細說明一下另一種方式。我們可以寫乙個專門的controller和action來進行異常發生時的路由設定.

public class utilitycontroller : controller

public actionresult pagenotfound()

}

if (shouldhandleexception)

}

}

C 自定義異常

帶乙個字串引數的建構函式,作用 當程式設計師用exception類獲取異常資訊而非 myexception時把自定義異常資訊傳遞過去 public myexception string msg base msg 帶有乙個字串引數和乙個內部異常資訊引數的建構函式 public myexception ...

C 定製異常 自定義異常

using system public myexception string message 指定錯誤訊息 base message public myexception string message,exception inner 指定錯誤訊息和內部異常資訊 base message,inner ...

異常 自定義異常

package test 01 練習 計算成績的平均值 異常的情況 成績為負數 me 總結 練習寫好乙個程式,思路最重要要做到心中有數,當計算成績的平均值,定義乙個方法,最後這個方法返回平均數即可 關鍵在於 方法的引數是啥?返回值型別是啥?當然是乙個陣列 可變引數組int grades int型別 ...