using System;數組
異常類型 描述ide
Exception:全部異常對象的基類。
SystemException:運行時產生的全部錯誤的基類。
IndexOutOfRangeException:當一個數組的下標超出範圍時運行時引起。
NullReferenceException:當一個空對象被引用時運行時引起。
InvalidOperationException:當對方法的調用對對象的當前狀態無效時,由某些方法引起。spa
ArgumentException:全部參數異常的基類。
ArgumentNullException:在參數爲空(不容許)的狀況下,由方法引起。
ArgumentOutOfRangeException:當參數不在一個給定範圍以內時,由方法引起。
InteropException:目標在或發生在CLR外面環境中的異常的基類。
ComException:包含COM類的HRESULT信息的異常。
SEHException:封裝Win32結構異常處理信息的異常。
SqlException:封裝了SQL操做異常。code
ArgumentNullException 一個空參數傳遞給方法,該方法不能接受該參數
ArgumentOutOfRangeException 參數值超出範圍
ArithmeticException 出現算術上溢或者下溢
ArrayTypeMismatchException 試圖在數組中存儲錯誤類型的對象
BadImageFormatException 圖形的格式錯誤
DivideByZeroException 除零異常
DllNotFoundException 找不到引用的DLL
FormatException 參數格式錯誤
IndexOutOfRangeException 數組索引超出範圍
InvalidCastException 使用無效的類
InvalidOperationException 方法的調用時間錯誤
NotSupportedException 調用的方法在類中沒有實現
NullReferenceException 試圖使用一個未分配的引用
OutOfMemoryException 內存空間不夠
StackOverflowException 堆棧溢出orm
DivideByZeroException 除零異常 程序實例:對象
1 class Program{ 2 int result; 3 Program (){ result =0;} 4 public void Adding_Numbers(int numbers1,int numbers2){ 5 try 6 { 7 int Result = numbers1 / numbers2; 8 Console.WriteLine(Result); 9 } 10 catch (DivideByZeroException e) 11 { 12 Console.WriteLine("Exception caught.{0}", e); 13 } 14 finally 15 { 16 Console.WriteLine("The result is {0}",result); 17 } 18 Console.WriteLine("After handling the exceotion"); 19 }
用戶自定義的Exception:blog
1 public class Calculate 2 { 3 int sum = 0; 4 int count = 0; 5 float average; 6 7 public void DoAverage() 8 { 9 if (count == 0) 10 throw(new CountIsZeroException("Zero count in Doaverage()")); 11 else 12 average = sum / count; 13 } 14 } 15 16 public class CountIsZeroException : ApplicationException //用戶自定義的異常要繼承這個基類 17 { 18 public CountIsZeroException(string message) : base(message) { } 19 } 20 class Program 21 { 22 static void Main(string[] args) 23 { 24 Calculate cal = new Calculate(); 25 try 26 { 27 cal.DoAverage(); 28 } 29 catch(CountIsZeroException e) 30 { 31 Console.WriteLine("coutzeroexcption:{0}", e.Message); 32 } 33 Console.ReadLine(); 34 } 35 }