在這里,您將了解C#中的內(nèi)置異常類。
C#.NET為每個可能的錯誤包括內(nèi)置的異常類。Exception類是所有異常類的基類。
以下是.NET中異常類的層次結(jié)構(gòu):
在上圖中,Exception類是SystemException和ApplicationException類的基類。的SystemException類是所有可在程序的執(zhí)行期間發(fā)生異常的基類。本ApplicationException類應(yīng)該派生來創(chuàng)建自己的自定義異常類??梢詾檫`反業(yè)務(wù)規(guī)則或其他與應(yīng)用程序相關(guān)的錯誤創(chuàng)建自定義類。
下圖顯示了在NullReferenceException運行時訪問null對象屬性時,如何在Visual Studio調(diào)試模式下引發(fā)。
下表列出了.NET中重要的內(nèi)置異常類。
異常類別 | 描述 |
---|---|
ArgumentException | 當(dāng)傳遞給方法的非null參數(shù)無效時引發(fā)。 |
ArgumentNullException | 在將null參數(shù)傳遞給方法時引發(fā)。 |
ArgumentOutOfRangeException | 當(dāng)參數(shù)值超出有效值范圍時引發(fā)。 |
DivideByZeroException | 當(dāng)整數(shù)值除以零時引發(fā)。 |
FileNotFoundException | 在指定位置不存在物理文件時引發(fā)。 |
FormatException | 當(dāng)值的格式不適合通過轉(zhuǎn)換方法(如Parse)從字符串轉(zhuǎn)換時引發(fā)。 |
IndexOutOfRangeException | 當(dāng)數(shù)組索引超出數(shù)組或集合的下限或上限時引發(fā)。 |
InvalidOperationException | 在對象的當(dāng)前狀態(tài)下方法調(diào)用無效時引發(fā)。 |
KeyNotFoundException | 在不存在用于訪問集合中成員的指定鍵時引發(fā)。 |
NotSupportedException | 在不支持方法或操作時引發(fā)。 |
NullReferenceException | 程序訪問空對象成員時引發(fā)。 |
OverflowException | 在算術(shù),強制轉(zhuǎn)換或轉(zhuǎn)換操作導(dǎo)致溢出時引發(fā)。 |
OutOfMemoryException | 當(dāng)程序沒有足夠的內(nèi)存來執(zhí)行代碼時引發(fā)。 |
StackOverflowException | 當(dāng)內(nèi)存中的堆棧溢出時引發(fā)。 |
TimeoutException | 分配給操作的時間間隔已到期。 |
發(fā)生錯誤時,應(yīng)用程序代碼或默認(rèn)處理程序?qū)⑻幚懋惓?。在下一部分中了解如何處理異常情況。