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