亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

淺談C#異常處理

發布時間:2020-07-18 14:28:44 來源:億速云 閱讀:207 作者:小豬 欄目:編程語言

小編這次要給大家分享的是淺談C#異常處理,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

概念

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

  但并不是所有的錯誤都是異常

  而處理這種錯誤,稱為異常處理

  異常處理實際是不斷去發掘異常、修改異常,使程序更穩定

異常處理主要表現在四個方面:

    程序開發前:盡可能的想到會發生的錯誤,標注怎么處理應對

    程序開發中:盡量暴露程序的問題,解決這些可能的異常

    系統發布后:盡可能的解決隱藏的或測試人員未測試到的程序問題

    發生異常時:異常代碼轉化成了友好提示顯示給用戶

異常分類 

編譯錯誤

  大小寫混淆

  數據類型與變量類型不符

  使用未聲明的變量

運行錯誤

  數組下標越界

  除數為零

  其他運行錯誤

邏輯錯誤

  超出數據類型的取值范圍

  語句體忘記加大括號

  其他邏輯性錯誤

異常處理操作

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

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

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

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

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

異常語句格式

try

{

// 引起異常的語句

}

catch( ExceptionName e )

{

// 錯誤處理代碼

}

finally

{

// 要執行的語句

}

示例

using System;
namespace DivisorIsZero
{
 public class DivisorIsZero
 {
 private static void Main()
 {
  int div0 = 20;
  int div1 = 0;
  int div2 = 2;
  int DivValue;

  try
  {
  DivValue = div0 / div1;
  System.Console.WriteLine("div0 / div1 = {0}", DivValue);
  }
  catch(DivideByZeroException e )
  {
  System.Console.WriteLine("零不能作為除數!異常值為:\n{0}",e);
  }

  // catch(DivideByZeroException e)子句只能捕獲特定的異常
  // try內的程序代碼可能還會產生其它的異常,這些異常只能由catch(Exception e)來捕獲了
  catch(Exception e )
  {
  System.Console.WriteLine("并非\''零作為除數引發的異常\"!異常值為:\n{0}",e);
  }
  finally
  {
  System.Console.WriteLine("無論是否發生異常,我都會顯示");
  System.Console.ReadKey();
  }
 }
 }
}

結果

淺談C#異常處理

C#中常見的異常類

  C# 異常是使用類來表示的

  C# 中的異常類主要是直接或間接地派生于 System.Exception 類System.ApplicationException 和System.SystemException 類是派生于 System.Exception 類的異常類

  System.ApplicationException 類支持由應用程序生成的異常。所以程序員定義的異常都應派生自該類

  System.SystemException 類是所有預定義的系統異常的基類

由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 掛起的方法調用過多而導致執行堆棧溢出時引發的異常

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

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

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

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

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

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

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

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

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

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

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

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

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

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

其他常用異常類型:

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

  BadImageFormatException 圖形的格式錯誤

  DivideByZeroException 除零異常

  DllNotFoundException 找不到引用的dll

  FormatException 參數格式錯誤

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

  MissingMemberException 訪問一個無效版本的dll

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

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

看完這篇關于淺談C#異常處理的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铁岭市| 务川| 德兴市| 太保市| 宿州市| 龙江县| 绥化市| 乌什县| 拜城县| 临湘市| 承德县| 平果县| 伊宁市| 文成县| 临桂县| 白银市| 新野县| 苍梧县| 天祝| 丁青县| 辽阳市| 南漳县| 渭南市| 马边| 伊吾县| 隆昌县| 剑川县| 衡东县| 腾冲县| 理塘县| 沅江市| 阿拉善盟| 平谷区| 富源县| 铅山县| 盖州市| 黄龙县| 湖州市| 泸西县| 无锡市| 攀枝花市|