處理和擲回例外狀況
更新:2007 年 11 月
程式必須能夠一致處理執行期間發生的錯誤。Common Language Runtime 藉著提供模型以一致的方式向程式告知錯誤,對容錯軟體的設計甚有助益。所有 .NET Framework 作業都藉著擲回例外狀況 (Exception) 來表示失敗。
傳統上,語言的錯誤處理模型不是仰賴語言的獨特方式以偵測錯誤並為其找出處理常式,就是仰賴作業系統提供的錯誤處理機制。執行階段則以下列功能實作例外處理 (Exception Handling):
可以在不需顧慮產生或處理例外狀況所使用之語言的情況下來處理例外狀況。
不需要任何特定語言語法以處理例外狀況,但允許各個語言定義本身的語法。
允許例外狀況跨處理序 (Process) 和甚至電腦界限來擲回。
例外狀況提供許多其他錯誤告知方法 (如傳回碼) 所不及的優點。凡有失敗就會告知。無效值就不會傳遍整個系統。您也不一定要檢查傳回碼。可以輕易地例外處理程式碼加入以增加程式的可靠性。最後,執行階段的例外處理比 Windows 架構的 C++ 錯誤處理還要快速。
因為執行的執行緒會例常周遊 Managed 和 Unmanaged 程式碼區塊,執行階段可以在 Managed 或者 Unmanaged 程式碼中擲回或攔截例外狀況。Unmanaged 程式碼可以包含 C++ 樣式的 SEH 例外狀況和 COM 架構的 HRESULTS 兩者。
在本節中
例外狀況概觀
提供 Common Language Runtime 例外狀況的概觀。Exception 類別和屬性
描述例外狀況物件的項目。例外狀況階層架構
描述大部分例外狀況所衍生自的例外狀況。例外處理基礎觀念
解釋如何使用 Catch、Throw 和 Finally 陳述式來處理例外狀況。處理例外狀況的最佳作法
描述處理例外狀況的建議方法。處理 COM Interop 例外狀況
描述如何處理 Unmanaged 程式碼中擲回的和攔截的例外狀況。
參考
Exception 類別
所有例外狀況都會繼承的類別的參考資訊。ApplicationException 類別
所有應用程式產生的例外狀況都應自其衍生的類別的參考資訊。SystemException 類別
所有系統產生的例外狀況都要自其衍生的類別的參考資訊。
相關章節
進階 COM 互通性
描述例外狀況在 Managed 和 Unmanaged 程式碼之間如何工作。HOW TO:對應 HRESULT 和例外狀況
描述例外狀況在 Managed 和 Unmanaged 程式碼之間的對應。