錯誤和異常
14.2 異常類
圖14-1(373)性能
- SystemException——該類用於一般由.NET運行庫拋出的異常,或者由幾乎全部的應用程序拋出的異常。SystemException異常的子類包括表示致命錯誤和非致命錯誤的異常。
- ApplicationException——最初的設計是做爲自定義應用程序異常類的基本類,CLR拋出的一些異常也派生自這個類。從ApplicationException派生自定義異常沒有任何好處。若是須要自定義異常類,從Exception基類派生自定義異常類。
- StackOverflowException——棧中的內存區域已滿,拋出這個異常。
- EndOfStreamException——一般是讀到文件末尾而拋出,流表示數據源之間的數據流。
- OverflowException——若是要在checked環境下把包含-40的int類型數據強制轉換爲uint數據,就會拋出這個異常。
14.3 捕獲異常
```
try
{
}
catch
{
}
finally
{
}
```
- 能夠省略finally
- 能夠由多個catch,過多會下降性能。
- 能夠自定義過濾器,其中包含catch塊僅在過濾器匹配時,捕獲特定塊中的異常。
- 能夠省略catch塊——此時,該語法不是標識異常,而是一種確保程序流在離開try塊後執行finally塊中的代碼的方式。若是在try塊中有幾個出口點,這頗有用。