欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中類(lèi)的異常處理詳解

 更新時(shí)間:2022年02月16日 09:58:04   作者:Andy阿輝  
大家好,本篇文章主要講的是C#中類(lèi)的異常處理詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下

前言

日常編碼過(guò)程中,最重要的技能不是說(shuō)你學(xué)會(huì)使用很多最新的編程技術(shù)或者做出一個(gè)高大上的系統(tǒng)。而是你在寫(xiě)代碼過(guò)程中,對(duì)異常的處理,是否系統(tǒng)可以穩(wěn)定,健壯。

對(duì)于異常的處理在C#中是通過(guò)try/cath機(jī)制來(lái)捕獲的,接下來(lái)我們一起來(lái)看看。

異常是程序中的運(yùn)行時(shí)錯(cuò)誤,它違法了系統(tǒng)約束或應(yīng)用程序約束,或出現(xiàn)了在正常操作時(shí)未預(yù)料的情形。

比如對(duì)于某些變量的非正常賦值或者在參與運(yùn)算操作時(shí)出現(xiàn)錯(cuò)誤等。

異常

關(guān)于異常,在C#中通過(guò)try語(yǔ)句和處理異常機(jī)制類(lèi)保證異常的捕獲,防止由于異常的未捕獲導(dǎo)致整個(gè)程序出現(xiàn)異常提醒,甚至出現(xiàn)崩潰。

異常的要求

try塊包含為避免出現(xiàn)異常而被保護(hù)的代碼

catch子句部分含有一個(gè)或多個(gè)catch子句。(處理異常代碼段也叫做異常處理子程序)

finally塊含有在所有情況下都要被執(zhí)行的代碼,無(wú)論有沒(méi)有異常發(fā)生

class Program
{
    static void Main(string[] args)
    {
        try
        {
            //驗(yàn)證是否有異常的代碼
            Ahui hui = new Ahui();
            InfoBase info = (InfoBase)hui;

            Console.WriteLine(hui.GetInfo());
            Console.WriteLine(info.GetInfo());
        }
        catch (Exception ex)
        {
            //捕獲異常,進(jìn)行異常的處理

            throw new Exception("異常向上一層拋出!");
        }            
        Console.ReadKey();
    }
}

在處理業(yè)務(wù)代碼時(shí),必須在剛開(kāi)始就將邏輯上的錯(cuò)誤都考慮清楚進(jìn)行驗(yàn)證處理,比如判空,非正常值,值類(lèi)型錯(cuò)誤等。

其次在通過(guò)try/catch機(jī)制來(lái)捕獲非正常的異常,防止程序出現(xiàn)無(wú)法把控的錯(cuò)誤,導(dǎo)致奔潰。

提示:在業(yè)務(wù)程序中盡量少用異常進(jìn)行捕獲,如果條件滿足要第一時(shí)間對(duì)異常進(jìn)行前期處理。<Catch()中的異常處理時(shí)間會(huì)比較長(zhǎng),而且會(huì)導(dǎo)致系統(tǒng)資源被浪費(fèi)(異常實(shí)時(shí)被往上拋出)。>

在C#中有很多不同類(lèi)型的異常可能被發(fā)生,BCL定義了許多類(lèi),每一個(gè)類(lèi)代表一個(gè)指定的異常類(lèi)型。當(dāng)一個(gè)異常發(fā)生時(shí),CLR首先創(chuàng)建該類(lèi)型的異常對(duì)象,其次尋找適當(dāng)?shù)腸atch子句以處理它。(所有的異常類(lèi)都派生自System.Exception類(lèi))

關(guān)于catch()有三種形式,可以處理不同級(jí)別的異常。

第一種 一般異常處理

   try
   {

   }
   catch
   {
       //一般異常處理
       
   }

能接受任何異常,但不能確認(rèn)引起異常的類(lèi)型。可對(duì)可能發(fā)生的異常進(jìn)行普通處理和清理。

第二種 特定異常處理

    try
    
    }
    catch(Exception)
    {
        //特定異常處理
        
    }

把一個(gè)異常類(lèi)的名稱(chēng)作為參數(shù),匹配該指定類(lèi)或派生自它的異常類(lèi)的異常。

第三種 帶對(duì)象的特定異常處理

    try
    
    }
    catch(Exception ex)
    {
        
      throw new Exception(ex.Message);
    }

可提供關(guān)于異常的多種異常信息,匹配指定的異?;蚺缮运漠惓n?lèi)的異常。通過(guò)異常實(shí)例,可得到異常的詳細(xì)信息。

    try
    
    }
    catch (Exception ex)
    {
        //特定異常處理
        throw new Exception(ex.Message);
    }
    finally { 
        //出現(xiàn)異常后的處理機(jī)制

    }

這里需要特別說(shuō)明下,關(guān)于finally中的代碼,不管異常是否被捕獲,它都會(huì)被執(zhí)行。

在finally中適合存放釋放資源或后續(xù)處理的代碼。

基礎(chǔ)知識(shí)日更已經(jīng)29天,如果大家還想繼續(xù),可以給個(gè)關(guān)注,感謝您的支持。

寄語(yǔ)

人生短暫,我不想去追求自己看不見(jiàn)的,我只想抓住我能看得見(jiàn)的。

總結(jié)

到此這篇關(guān)于C#中類(lèi)的異常處理詳解的文章就介紹到這了,更多相關(guān)C#類(lèi)異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#截取中英文混合指定長(zhǎng)度字符串實(shí)例

    C#截取中英文混合指定長(zhǎng)度字符串實(shí)例

    這篇文章主要介紹了C#截取中英文混合指定長(zhǎng)度字符串,大家參考使用
    2013-12-12
  • c#高效比對(duì)大量圖片的實(shí)例代碼

    c#高效比對(duì)大量圖片的實(shí)例代碼

    以前傳統(tǒng)的比較方式是遍歷圖片中的每一個(gè)像素,然后進(jìn)行比對(duì)。這樣的比對(duì)在少量圖片的比對(duì)上雖然效率低一點(diǎn),但是也沒(méi)有什么不好。但是在大量圖片比對(duì)的時(shí)候,過(guò)長(zhǎng)的反應(yīng)時(shí)間和對(duì)服務(wù)器比較高的消耗肯定是不行的,下面介紹下新的方法
    2013-10-10
  • c# 使用特定帳號(hào)密碼訪問(wèn)Windows網(wǎng)路共享

    c# 使用特定帳號(hào)密碼訪問(wèn)Windows網(wǎng)路共享

    這篇文章主要介紹了c# 使用特定帳號(hào)密碼訪問(wèn)Windows網(wǎng)路共享的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • 基于C#方法重載的總結(jié)詳解

    基于C#方法重載的總結(jié)詳解

    本篇文章是對(duì)C#中方法重載進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C# listview 點(diǎn)擊列頭排序的實(shí)例

    C# listview 點(diǎn)擊列頭排序的實(shí)例

    下面小編就為大家?guī)?lái)一篇C# listview 點(diǎn)擊列頭排序的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • C# 實(shí)現(xiàn)PPT 每一頁(yè)轉(zhuǎn)成圖片過(guò)程解析

    C# 實(shí)現(xiàn)PPT 每一頁(yè)轉(zhuǎn)成圖片過(guò)程解析

    這篇文章主要介紹了C# 實(shí)現(xiàn)PPT 每一頁(yè)轉(zhuǎn)成圖片過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • C#特性-對(duì)象集合初始化器介紹

    C#特性-對(duì)象集合初始化器介紹

    在寫(xiě)一些實(shí)體類(lèi)的時(shí)候,我們往往在寫(xiě)構(gòu)造方法的時(shí)候思考很長(zhǎng)時(shí)間,除了一個(gè)無(wú)參構(gòu)造器外還在想需要寫(xiě)幾個(gè)構(gòu)造器呢?哪些參數(shù)是需要初始化的?,F(xiàn)在你再也不需要為這事煩惱了
    2014-12-12
  • C#操作mysql數(shù)據(jù)庫(kù)的代碼實(shí)例

    C#操作mysql數(shù)據(jù)庫(kù)的代碼實(shí)例

    這篇文章為大家提供了一個(gè)C#操作mysql數(shù)據(jù)庫(kù)的實(shí)例,大家可以參考使用
    2013-11-11
  • 最新評(píng)論