HOWTO · Csharp
C# 中的異常列表
我們將檢視本文中可能引發的 C# 異常。
本文是關於預定義 C# 的 Exception 類的異常。
System Exception 類是 C# 程式語言中預定義的異常類,可用於程式設計。選擇程式碼中可能出現的異常並將其插入到適當的 catch 塊中。
本章將提供所有系統異常類的完整列表。你可以使用這個異常來編寫既沒有錯誤又非常有彈性的程式碼。
C# 中的系統異常
- AccessViolationException - 每當嘗試讀取或寫入受保護的記憶體時都會生成異常。
- AppDomainUnloadedException - 只要尚未載入訪問應用程式域的嘗試,就會生成異常。
- ApplicationException - 如果應用程式錯誤不是致命的,則會丟擲異常。
- ArgumentException - 當提供給方法的引數之一無效時,向使用者顯示錯誤訊息。
- ArgumentNullException - 只要不接受空引用作為有效引數的過程接收到空值的引用(在 Visual Basic 中稱為 Nothing),就會生成異常。
- ArgumentOutOfRangeException - 當引數的值超出已呼叫方法建立的允許值範圍時,將引發異常。
- ArithmeticException - 如果計算、強制轉換或轉換操作導致錯誤,則丟擲異常。
- ArrayTypeMismatchException - 當試圖在陣列中儲存不正確型別的元素時,會發出異常。
- BadImageFormatException - 當動態連結庫 (DLL) 或可執行程式的檔案影象損壞時,會引發異常。
10.CannotUnloadAppDomainException - 如果解除安裝應用程式域的努力失敗,則丟擲異常。 - ContextMarshalException - 如果無法在上下文邊界上封送物件,則會引發異常。
- DataMisalignedException - 如果從不是資料大小倍數的地址讀取或寫入資料單元,則會引發異常。當資料大小不是地址的倍數時,會丟擲異常。
- DivideByZeroException - 每當嘗試將十進位制數或整數值除以零時都會產生異常。
- DllNotFoundException - 如果無法找到在 DLL 匯入中指定的動態連結庫 (DLL),則例外。
- DuplicateWaitObjectException - 如果陣列包含同一物件的多個例項,則會引發異常。
- EntryPointNotFoundException - 如果由於缺少入口方法導致類被載入而嘗試載入類失敗,則會產生異常。
- ExecutionEngineException - 只要公共語言執行時的執行引擎遇到系統本地錯誤,就會引發異常。
- FieldAccessException - 每當對包含在類中的私有或受保護欄位進行無效嘗試時,都會生成異常。
- FormatException - 當引數的結構與方法呼叫提供的引數不匹配時,會發生這種情況。
- IndexOutOfRangeException - 如果嘗試訪問索引超出陣列限制的陣列元素,則會發出異常。此類不能將其繼承傳遞給其他類。
- InsufficientMemoryException - 如果檢查足夠的、可訪問的記憶體返回不正確的結果,則會觸發異常。此類不能將其繼承傳遞給其他類。
- InvalidCastException - 如果轉換過程出錯或進行了顯式轉換,將觸發異常。
- InvalidOperationException - 每當由於物件的當前狀態而無法執行方法呼叫時,就會引發異常。
- InvalidProgramException - 如果程式具有不正確的 Microsoft 中間語言 (MSIL) 或後設資料,則會引發異常。在大多數情況下,這表明用於構建程式的編譯器存在問題。
- MemberAccessException - 只要嘗試訪問類成員不成功,就會引發異常。
- MethodAccessException - 每當對類中的私有或受保護方法進行無效嘗試時,就會發生異常。
- MissingFieldException - 每當有人試圖動態訪問資料庫中不存在的欄位時,就會產生異常。
- MissingMemberException - 如果嘗試動態訪問不存在的類成員,則會發出異常。
- MissingMethodException - 如果有人試圖動態訪問程式中不存在的方法,則例外。
- MulticastNotSupportedException - 如果嘗試基於型別而不是型別的兩個委託的組合,則會引發異常。
- NotFiniteNumberException - 任何正無窮或負無窮或不存在的值都會引發異常 (NaN)。
- NotImplementedException - 如果請求的方法或動作由於未實現而無法執行,則會引發異常。
- NotSupportedException - 當已呼叫的方法不支援已呼叫的功能或嘗試讀取、查詢或寫入不支援已呼叫功能的流時引發異常呼叫。
- NullReferenceException - 如果對先前已配置為
null的物件引用嘗試取消引用操作,則會引發錯誤。 - ObjectDisposedException - 如果對已被釋放的物件執行操作,則會產生異常。
- OperationCanceledException - 如果執行緒停止執行先前執行的活動,則線上程中引發異常。
- OutOfMemoryException - 如果沒有足夠的記憶體來繼續執行程式,則會引發異常。也稱為記憶體異常。
- OverflowException - 如果涉及強制轉換、轉換或算術的操作在檢查上下文中執行時導致溢位,則會引發異常。
- PlatformNotSupportedException - 如果試圖在不支援的平臺上執行某個功能,則會引發異常。
- RankException - 如果方法接收到的引數包含不正確的維數,則會引發異常。
- StackOverflowException - 如果由於巢狀方法呼叫次數過多而導致執行堆疊溢位,則會引發異常。
- SystemException - 此函式指定名稱空間內建立的任何異常的基類。
- TimeoutException - 如果過程或動作允許的時間量已用完,則發出異常。
- TypeInitializationException - 丟擲的異常是類初始化器在包裝和丟擲時丟擲的異常。
- TypeLoadException - 如果型別載入出現問題,則引發異常。
- TypeUnloadedException - 如果試圖訪問尚未載入的類,則會產生異常。
- UnauthorizedAccessException - 如果作業系統由於輸入或輸出 (I/O) 問題或特定型別的安全故障而拒絕提供訪問,則會引發異常。
C# 中的 System.Data 異常
- ConstraintException - 此物件表示在嘗試違反約束的操作時引發的異常。
- DataException - 如果使用
ADO.NET元件產生錯誤,則會傳遞異常。 - DBConcurrencyException - 如果受影響的行數為零,則在執行插入、更新或刪除操作時發出異常。
- DeletedRowInaccessibleException - 用於表示嘗試對已刪除的物件執行操作時引發的異常。
- DuplicateNameException - 表示如果在連結物件上執行新增操作並且發現資料庫物件名稱在使用中重複時產生的異常。
- EvaluateException - 當無法進行屬性評估時引發異常的表示。
- InRowChangingEventException - 表示從事件內部呼叫方法時顯示的錯誤訊息。
- InvalidConstraintException - 如果嘗試訪問或構造一個由此類表示的不正確的關係,則會產生異常。
- InvalidExpressionException - 此物件表示當 DataColumn 包含不正確的表示式時嘗試將 DataColumn 新增到 DataColumnCollection 時產生的錯誤。
- MissingPrimaryKeyException - 當試圖訪問表中沒有主鍵的行時,會丟擲此異常。
- NoNullAllowedException - 如果你嘗試將空值插入到不應出現的屬性設定為 false 的列中,則會發出異常。
- OperationAbortedException - 如果使用者取消當前正在執行的操作,則會產生此異常。
- ReadOnlyException - 只要嘗試修改限制為只讀訪問的列的值,就會產生異常。
- RowNotInTableException - 當你嘗試對未包含在 a 中的 a 執行操作時引發異常。表示丟擲異常時顯示的錯誤訊息。
- StrongTypingException - 每當使用者嘗試訪問 DBNull 變數時,高度型別化的系統都會生成異常。
- SyntaxErrorException - 當該物件表示 a 的屬性有語法錯誤時丟擲異常。
- TypedDataSetGeneratorException - 如果在生成強型別時出現名稱衝突,則會引發異常。
- VersionNotFoundException - 如果嘗試返回已從存在中刪除的版本,則會引發異常。
C# 中的 System.IO 異常
- DirectoryNotFoundException - 如果無法找到檔案或目錄的一部分,則會生成異常。
- DriveNotFoundException - 如果試圖訪問當前不可用的磁碟或共享,則會引發異常。
- EndOfStreamException - 如果嘗試讀取超出流末尾寫入的資料,則會產生異常。
- FileLoadException - 如果託管程式集已定位但無法載入,則會發出此異常。
- FileNotFoundException - 如果嘗試讀取或寫入磁碟上不存在的檔案失敗,則會引發異常。
- IOException - 如果 I/O 出現問題,則引發異常。
- PathTooLongException - 如果路徑名或檔名大於系統預定義的最大長度,則會發出錯誤。
C# 中的 System.Net 異常
- HttpListenerException - 如果在處理 HTTP 請求時出現問題,則丟擲異常。
- ProtocolViolationException - 如果網路協議由於錯誤而被不當使用,則會引發異常。
- WebException - 如果嘗試通過可插入協議聯絡網路時出現問題,則會發出異常。
C# 中的 System.Net.Mail 異常
- SmtpException - 識別導致當它不能動作時丟擲異常的錯誤條件。
- SmtpFailedRecipientException - 此物件表示當無法完成向某個接收者傳送訊息或執行操作時發出的異常。
- SmtpFailedRecipientsException - 如果使用 a 傳送電子郵件並且無法傳送給所有收件人,則會生成異常。
C# 中的 System.Net.NetworkInformation 異常
- NetworkInformationException - 如果獲取網路資訊失敗,則引發異常。
- PingException - 每當一個方法(或方法)呼叫另一個產生異常的方法(或方法)時,就會產生異常。
C# 中的 System.Resources 異常
- MissingManifestResourceException - 如果附屬程式集沒有足夠的資源用於中立文化,則會發生異常,因為沒有足夠的空間容納衛星程式集。
- MissingSatelliteAssemblyException - 當中立文化的衛星裝配不存在時,此規則不適用,這是唯一適合打破它的時間。