最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#異常處理總結(jié)及簡單實例

 更新時間:2017年06月11日 08:48:10   投稿:lqh  
這篇文章主要介紹了C#異常處理總結(jié)及簡單實例的相關(guān)資料,需要的朋友可以參考下

C#異常處理總結(jié)及簡單實例

一、異常處理的理解?

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

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

二、異常處理如何操作?

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

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

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

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

例如如果你打開一個文件,不管是否出現(xiàn)異常文件都要被關(guān)閉。

4、throw:當問題出現(xiàn)時,程序拋出一個異常。使用 throw 關(guān)鍵字來完成。

語法示例:

try

{

  // 引起異常的語句

}

catch( ExceptionName e1 )

{

  // 錯誤處理代碼

}

catch( ExceptionName e2 )

{

  // 錯誤處理代碼

}

catch( ExceptionName eN )

{

  // 錯誤處理代碼

}

finally

{

  // 要執(zhí)行的語句

}

三、C#中的異常類

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

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

System.AccessViolationException 在試圖讀寫受保護內(nèi)存時引發(fā)的異常。

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

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

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

System.InvalidCastException 因無效類型轉(zhuǎn)換或顯示轉(zhuǎn)換引發(fā)的異常。

System.InvalidOperationException 當方法調(diào)用對于對象的當前狀態(tài)無效時引發(fā)的異常。

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

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

System.NotImplementedException 在無法實現(xiàn)請求的方法或操作時引發(fā)的異常。

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

System.OutOfMemoryException 沒有足夠的內(nèi)存繼續(xù)執(zhí)行程序時引發(fā)的異常。

System.StackOverflowException 掛起的方法調(diào)用過多而導致執(zhí)行堆棧溢出時引發(fā)的異常。

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

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

System.ArgumentOutOfRangeException 當參數(shù)值超出調(diào)用的方法所定義的允許取值范圍時引發(fā)的異常。

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

System.DivideByZeroException 試圖用零除整數(shù)值或十進制數(shù)值時引發(fā)的異常。

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

System.OverflowException 在選中的上下文中所進行的算數(shù)運算、類型轉(zhuǎn)換或轉(zhuǎn)換操作導致溢出時引發(fā)的異常。

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

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

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

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

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

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

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

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

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

BadImageFormatException 圖形的格式錯誤。

DivideByZeroException 除零異常。

DllNotFoundException 找不到引用的dll。

FormatException 參數(shù)格式錯誤。

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

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

NotSupportedException 調(diào)用的方法在類中沒有實現(xiàn)。

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.");

    }

  }

}

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

相關(guān)文章

  • C#上位機與三菱PLC通訊的實現(xiàn)步驟(圖文)

    C#上位機與三菱PLC通訊的實現(xiàn)步驟(圖文)

    這篇文章主要介紹了C#上位機與三菱PLC通訊的實現(xiàn)步驟(圖文),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • 簡單談談C#中深拷貝、淺拷貝

    簡單談談C#中深拷貝、淺拷貝

    深拷貝和淺拷貝都是對對象進行的拷貝復制。而他們的不同就在于:一個對象中可能會有值類型的字段,也可能會有引用類型的字段。淺拷貝直接拷貝值、引用類型的指針。而深拷貝則是重新構(gòu)造字段指針所指向的對象,并沒有拷貝該字段的指針,或是與該字段指針指向同一塊內(nèi)存
    2015-06-06
  • C#中委托和事件在觀察者模式中的應用實例

    C#中委托和事件在觀察者模式中的應用實例

    這篇文章主要介紹了C#中委托和事件在觀察者模式中的應用,需要的朋友可以參考下
    2014-08-08
  • 在C#中如何獲取程序集

    在C#中如何獲取程序集

    某一天我正在寫一些反射代碼,目的是遍歷所有的程序集來查找一個特定的接口,然后在Startup中調(diào)用其上的一個方法,這篇文章主要介紹了在C#中如何獲取程序集,需要的朋友可以參考下
    2024-03-03
  • 淺談C#中的常量、類型推斷和作用域

    淺談C#中的常量、類型推斷和作用域

    這篇文章主要介紹了C#中的常量、類型推斷和作用域,有需要的朋友可以參考一下
    2013-12-12
  • C# 設計模式系列教程-橋接模式

    C# 設計模式系列教程-橋接模式

    橋接模式降低了沿著兩個或多個維度擴展時的復雜度,防止類的過度膨脹,解除了兩個或多個維度之間的耦合,使它們沿著各自方向變化而不互相影響。
    2016-06-06
  • WPF實現(xiàn)自帶觸控鍵盤的文本框

    WPF實現(xiàn)自帶觸控鍵盤的文本框

    這篇文章實現(xiàn)了WPF自帶觸控鍵盤的文本框,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • 詳解c# Emit技術(shù)

    詳解c# Emit技術(shù)

    這篇文章主要介紹了c# Emit技術(shù)的相關(guān)資料,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12
  • C# 創(chuàng)建、部署和調(diào)用WebService簡單示例

    C# 創(chuàng)建、部署和調(diào)用WebService簡單示例

    這篇文章主要為大家詳細介紹了C# 創(chuàng)建、部署和調(diào)用WebService的簡單示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#實現(xiàn)安全刪除文件目錄的方法

    C#實現(xiàn)安全刪除文件目錄的方法

    這篇文章主要介紹了C#實現(xiàn)安全刪除文件目錄的方法,涉及C#刪除文件目錄的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-05-05

最新評論

延长县| 泌阳县| 清苑县| 福鼎市| 祥云县| 万荣县| 邛崃市| 台湾省| 阳新县| 商南县| 印江| 乌鲁木齐县| 含山县| 都兰县| 阳山县| 鄂托克前旗| 新邵县| 临高县| 米林县| 基隆市| 江阴市| 客服| 滦平县| 休宁县| 古交市| 平谷区| 雅江县| 莱阳市| 潮州市| 包头市| 黄平县| 德兴市| 新巴尔虎右旗| 巴塘县| 伊宁市| 涪陵区| 江津市| 密云县| 获嘉县| 如东县| 武山县|