日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#異常處理機制初步講解

一、C#異常處理機制所用到關鍵字

拱墅ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

try用于檢查發(fā)生的異常,并幫助發(fā)送任何可能的異常。

catch以控制權更大的方式處理錯誤,可以有多個catch子句。

finally無論是否引發(fā)了異常,finally的代碼塊都將被執(zhí)行。

throw用于引發(fā)異常,可引發(fā)預定義異常和自定義異常。

二、C#異常處理機制的格式

 
  
   try 
  • {   程序代碼塊; 
  • }  catch(Exception e) 
  • {   異常處理代碼塊; 
  • }  finally 
  • {   無論是否發(fā)生異常,均要執(zhí)行的代碼塊; 
    1. 三、C#異常處理機制實戰(zhàn)

      一個除數(shù)和零的簡單例子:

       
        
         public class DivisorIsZero 
    2. {  private static void Main() 
    3. {  int  dividend = 10 ; 
    4. int  divisor1 = 0 ;  int  divisor2 = 5 ; 
    5. int DivideValue;  try 
    6. {  DivideValue = dividend /divisor1; //(1) 
    7. // DivideValue = dividend /divisor2; //(2)  System.Console.WriteLine(" DivideValue ={0}",DivideValue);//(3)這一行將不會被執(zhí)行。 
    8. }  catch 
    9. {  System.Console.WriteLine("傳遞過來的異常值為:{0}",e); 
    10. }  finally 
    11. {  System.Console.WriteLine("無論是否發(fā)生異常,我都會顯示。"); 
    12. }  } 
      1. 注:(1)行被執(zhí)行則會拋出一個異常,如果沒有catch語句,程序會異常終止,使用不帶參數(shù)的catch子句,則可以捕獲任意類型的異常。

        如果將(1)行注釋掉,啟用(2)行,這意味該程序運行時不會出現(xiàn)異常,從輸出可知,finally代碼塊仍將被執(zhí)行。

        可以給try語句提供多個catch語句,以捕獲特定的異常,如上例中:0作為除數(shù)則會引發(fā)DivideByZeroException類型的異常,上例中的catch語句可以作如下修改:

         
          
           catch(DivideByZeroException e) 
      2. {   System.Console.WriteLine("零不能作為除數(shù)!異常值為:\n{0}",e); 
      3. }  catch(Exception e) 
      4. {   System.Console.WriteLine("并非\''零作為除數(shù)引發(fā)的異常\"!異常值為:\n{0}",e); 
        1. 為什么還要加上一個catch(Exceptione)子句呢?原因很簡單,catch(DivideByZeroExceptione)子句只能捕獲特定的異常,try內(nèi)的程序代碼可能還會產(chǎn)生其它的異常,這些異常只能由catch(Exceptione)來捕獲了。

          下表給出了一些常見的異常:

          System名稱空間中常用的異常類

          異常類名稱簡單描述

          MemberAccessException訪問錯誤:類型成員不能被訪問

          ArgumentException參數(shù)錯誤:方法的參數(shù)無效

          ArgumentNullException參數(shù)為空:給方法傳遞一個不可接受的空參數(shù)

          ArithmeticException數(shù)學計算錯誤:由于數(shù)學運算導致的異常,覆蓋面廣。

          ArrayTypeMismatchException數(shù)組類型不匹配

          DivideByZeroException被零除

          FormatException參數(shù)的格式不正確

          IndexOutOfRangeException索引超出范圍,小于0或比***一個元素的索引還大

          InvalidCastException非法強制轉(zhuǎn)換,在顯式轉(zhuǎn)換失敗時引發(fā)

          MulticastNotSupportedException不支持的組播:組合兩個非空委派失敗時引發(fā)

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

          NullReferenceException引用空引用對象時引發(fā)

          OutOfMemoryException無法為新語句分配內(nèi)存時引發(fā),內(nèi)存不足

          OverflowException溢出

          StackOverflowException棧溢出

          TypeInitializationException錯誤的初始化類型:靜態(tài)構造函數(shù)有問題時引發(fā)

          NotFiniteNumberException無限大的值:數(shù)字不合法

          四、定義自己的異常類

          除了預定義的異常外,我們還可以創(chuàng)建自己的異常,過程比較簡單:

          ㈠聲明一個異常,格式如下:

          classExceptionName:Exception{}

          ㈡引發(fā)自己的異常:

          throw(ExceptionName);

          看一個例子:

           
            
             class IAmSecondGrade:System.Exception{}//聲明異常 
        2. class SecondGrade  { 
        3. public static int mul(int first,int second)  { 
        4. if(first >100||second >100)  throw new IAmSecondGrade();//引發(fā)異常 
        5. return (first*second);  } 
        6. public static void Main()  { 
        7. int mul_value;  try 
        8. {  mul mul_value =mul(99,56); 
        9. System.Console.WriteLine("99與56積為:{0}",mul_value);  mul mul_value =mul(101,4); 
        10. System.Console.WriteLine("出現(xiàn)異常,這行是不會被執(zhí)行的。");  } 
        11. catch(IAmSecondGrade)//捕獲自定義的異常  { 
        12. System.Console.WriteLine("我才上二年級,超過100的乘法我不會。嘿嘿,我自定義的異常。");  } 
        13. catch(System.Exception e)  { 
        14. System.Console.WriteLine("非自定義異常。其值為:{0}",e);  } 
        15. }  } 
          1. 今天學習了一些異常處理的重要特性,還有許多其它的特性,有待以后努力


            網(wǎng)站欄目:C#異常處理機制初步講解
            分享鏈接:http://www.5511xx.com/article/dhcegcj.html