国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#異常處理總結及簡單實例

2020-01-24 00:38:22
字體:
來源:轉載
供稿:網友

C#異常處理總結及簡單實例

一、異常處理的理解?

異常處理是指程序在運行過程中,發生錯誤會導致程序退出,這種錯誤,就叫做異常。

因此處理這種錯誤,就稱為異常處理。

二、異常處理如何操作?

C# 異常處理時建立在四個關鍵詞之上的:try、catch、finally 和 throw。

1、try:一個 try 塊標識了一個將被激活的特定的異常的代碼塊。后跟一個或多個 catch 塊。

2、catch:程序通過異常處理程序捕獲異常。catch 關鍵字表示異常的捕獲。

3、finally:finally 塊用于執行給定的語句,不管異常是否被拋出都會執行。

例如如果你打開一個文件,不管是否出現異常文件都要被關閉。

4、throw:當問題出現時,程序拋出一個異常。使用 throw 關鍵字來完成。

語法示例:

try{  // 引起異常的語句}catch( ExceptionName e1 ){  // 錯誤處理代碼}catch( ExceptionName e2 ){  // 錯誤處理代碼}catch( ExceptionName eN ){  // 錯誤處理代碼}finally{  // 要執行的語句}

三、C#中的異常類

C# 異常是使用類來表示的。C# 中的異常類主要是直接或間接地派生于System.Exception

(1).由System.SystemException派生的異常類型:

System.AccessViolationException 在試圖讀寫受保護內存時引發的異常。

System.ArgumentException 在向方法提供的其中一個參數無效時引發的異常。

System.Collections.Generic.KeyNotFoundException 指定用于訪問集合中元素的鍵與集合中的任何鍵都不匹配時所引發的異常。

System.IndexOutOfRangeException 訪問數組時,因元素索引超出數組邊界而引發的異常。

System.InvalidCastException 因無效類型轉換或顯示轉換引發的異常。

System.InvalidOperationException 當方法調用對于對象的當前狀態無效時引發的異常。

System.InvalidProgramException 當程序包含無效Microsoft中間語言(MSIL)或元數據時引發的異常,這通常表示生成程序的編譯器中有bug。

System.IO.IOException 發生I/O錯誤時引發的異常。

System.NotImplementedException 在無法實現請求的方法或操作時引發的異常。

System.NullReferenceException 嘗試對空對象引用進行操作時引發的異常。

System.OutOfMemoryException 沒有足夠的內存繼續執行程序時引發的異常。

System.StackOverflowException 掛起的方法調用過多而導致執行堆棧溢出時引發的異常。

(2).由System.ArgumentException派生的異常類型:

System.ArgumentNullException 當將空引用傳遞給不接受它作為有效參數的方法時引發的異常。

System.ArgumentOutOfRangeException 當參數值超出調用的方法所定義的允許取值范圍時引發的異常。

(3).由System.ArithmeticException派生的異常類型:

System.DivideByZeroException 試圖用零除整數值或十進制數值時引發的異常。

System.NotFiniteNumberException 當浮點值為正無窮大、負無窮大或非數字(NaN)時引發的異常。

System.OverflowException 在選中的上下文中所進行的算數運算、類型轉換或轉換操作導致溢出時引發的異常。

(4).由System.IOException派生的異常類型:

System.IO.DirectoryNotFoundException 當找不到文件或目錄的一部分時所引發的異常。

System.IO.DriveNotFoundException 當嘗試訪問的驅動器或共享不可用時引發的異常。

System.IO.EndOfStreamException 讀操作試圖超出流的末尾時引發的異常。

System.IO.FileLoadException 當找到托管程序卻不能加載它時引發的異常。

System.IO.FileNotFoundException 試圖訪問磁盤上不存在的文件失敗時引發的異常。

System.IO.PathTooLongException 當路徑名或文件名超過系統定義的最大長度時引發的異常。

(5).其他常用異常類型:  

ArrayTypeMismatchException 試圖在數組中存儲錯誤類型的對象。

BadImageFormatException 圖形的格式錯誤。

DivideByZeroException 除零異常。

DllNotFoundException 找不到引用的dll。

FormatException 參數格式錯誤。

MethodAccessException 試圖訪問私有或者受保護的方法。

MissingMemberException 訪問一個無效版本的dll。

NotSupportedException 調用的方法在類中沒有實現。

PlatformNotSupportedException 平臺不支持某個特定屬性時拋出該錯誤。

四、示例

class MyExceptionTest{  static double SafeDivision(double x, double y)  {    if (y == 0)      throw new System.DivideByZeroException();    return x / y;  }  static void Main()  {    double a = 98, b = 0;    double result = 0;    try    {      result = SafeDivision(a, b);      Console.WriteLine("{0} divided by {1} = {2}", a, b, result);    }    catch (DivideByZeroException e)    {      Console.WriteLine("Attempted divide by zero.");    }  }}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐城市| 青海省| 祥云县| 台北县| 冀州市| 宣城市| 景宁| 嘉定区| 高平市| 军事| 中宁县| 吉木乃县| 新郑市| 高阳县| 红河县| 确山县| 苏尼特左旗| 绥化市| 西乌珠穆沁旗| 龙州县| 西乌| 集贤县| 阳高县| 曲沃县| 繁昌县| 报价| 珠海市| 临洮县| 子洲县| 丽江市| 信宜市| 徐汇区| 石渠县| 潮安县| 卢氏县| 深泽县| 习水县| 什邡市| 沁源县| 吉木乃县| 资兴市|