什麼是異常:異常是程序在執行是發生的錯誤。
導致異常的原因:
一、代碼錯誤,包括語法錯誤、邏輯錯誤
二、資源不可用,這是由系統訪問了未經授權的資源而引起的錯誤。
三、公共語言運行庫,這是有CLR內部引起的錯誤。
Exception | 左右異常的基類型 |
ApplicationException | 發生非致命應用程序錯誤時引發的異常 |
SystemException | 爲system命名空間中預定義異常定義基類 |
system.AccessViolationException | 在實圖讀寫受保護內存時引發的異常 |
System.ArgumentException | 在向方法提供一個參數無效時引發的異常 |
System.IndexOutOfRangeException | 訪問數組時因元素索引超出數組邊界而引發的異常 |
System.Collections.Generic.KeyNotFoundException | 指定用於訪問集合中元素的鍵與集 閤中的任何鍵都不匹配時所引發的異常。 |
System.InvalidCastException | 因無效類型轉換或顯示轉換引發的異常 |
System.InvalidOperationException | 當方法調用對於對象的當前狀態無效時引發的異常 |
System.InvalidProgramExcption | 當程序包含無效Microsoft中間語言或元數據時將引發的異常。這通常表示生成程序的編譯器中有Bug。 |
System.IO.IOException | 發生I/O錯誤時引發的異常。 |
System.NotImplementedException | 在無法實現請求的方法或操作時引發的異常。 |
System.NullReferenceException | 嘗試對空對象引用進行操作時引發的異常 |
System.OutOfMemoryException | 沒有足夠的內存繼續執行程序時引發的異常。 |
System.StackOverflowExcepion | 掛起的方法調用過多而導致執行堆棧溢出時引發的異常。 |
System.ArgumentNullException | 當將空引用傳遞給不接受它作爲有效參數的方法時引發的異常。 |
System.ArgumentOutOfRangeException | 當參數值超出調用的方法所定義的允許取值範圍時引發的異常。 |
System.DivideByZeroException | 試圖用零除整數或十進制數值時引發的異常 |
System.NotFiniteNumberException | 當浮點值爲正無窮大、負無窮大或非數字時引發的異常。 |
System.OverflowException | 在選中的上下文中進行的算術運算、類型轉換或轉換操作導致溢出時引發的異常。 |
System.IO.DirectoryNotFoundException: | 當找不到文件或目錄的一部分時引發的異常 |
System.IO.DriveNotFoundException: | 當嘗試訪問的驅動器或共享不可用時引發的異常。 |
System.IO.EndofSreamException: | 讀操作試圖超出流的末尾時引發的異常。 |
System.IO.FileLoadException: | 當找到託管程序集卻不能加載它時引發的異常。 |
System.IO.FileNotFoundException: | 試圖訪問磁盤上不存在的文件失敗時引發的異常 |
System.IO.PathTooLongException: | 當路徑名或文件名超過系統定義的最大長度時引發的異常 |
try……catch……finally
try:包含拋出異常的代碼
catch:包含拋出異常是要執行的代碼
finally:包含始終會執行的代碼。如果產生異常則在try 塊之後執行,如果處理了異常,就在catch塊後執行
處理異常方法參考