一.c#中的異常清單c#
Exception:全部異常對象的基類。 SystemException:運行時產生的全部錯誤的基類。 IndexOutOfRangeException:當一個數組的下標超出範圍時運行時引起。 NullReferenceException:當一個空對象被引用時運行時引起。 InvalidOperationException:當對方法的調用對對象的當前狀態無效時,由某些方法引起。 ArgumentException:全部參數異常的基類。 ArgumentNullException:在參數爲空(不容許)的狀況下,由方法引起。 ArgumentOutOfRangeException:當參數不在一個給定範圍以內時,由方法引起。 InteropException:目標在或發生在CLR外面環境中的異常的基類。 ComException:包含COM類的HRESULT信息的異常。 SEHException:封裝Win32結構異常處理信息的異常。 SqlException:封裝了SQL操做異常。 常見具體的異常對象: ArgumentNullException 一個空參數傳遞給方法,該方法不能接受該參數 ArgumentOutOfRangeException 參數值超出範圍 ArithmeticException 出現算術上溢或者下溢 ArrayTypeMismatchException 試圖在數組中存儲錯誤類型的對象 BadImageFormatException 圖形的格式錯誤 DivideByZeroException 除零異常 DllNotFoundException 找不到引用的DLL FormatException 參數格式錯誤 IndexOutOfRangeException 數組索引超出範圍 InvalidCastException 使用無效的類 InvalidOperationException 方法的調用時間錯誤 NotSupportedException 調用的方法在類中沒有實現 NullReferenceException 試圖使用一個未分配的引用 OutOfMemoryException 內存空間不夠 StackOverflowException 堆棧溢出
try catch中儘可能使用具體的異常,避免使用system.Exception 數組
static void UnhandledExceptionEventHandler(object sender, UnhandledExceptionEventArgs e) { try{ using (System.IO.FileStream fs = new System.IO.FileStream(@"c:\testme.log", System.IO.FileMode.Append, System.IO.FileAccess.Write)) { using (System.IO.StreamWriter w = new System.IO.StreamWriter(fs, System.Text.Encoding.UTF8)) { w.WriteLine(e.ExceptionObject); } } } catch { 退出前的處理動做,如保存數據等 } }