溫馨提示×

溫馨提示×

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

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

C#中類的異常處理實例分析

發(fā)布時間:2022-02-16 11:34:16 來源:億速云 閱讀:122 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下C#中類的異常處理實例分析的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

前言

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

對于異常的處理在C#中是通過try/cath機制來捕獲的,接下來我們一起來看看。

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

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

異常

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

異常的要求

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

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

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

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

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

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

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

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

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

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

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

第一種 一般異常處理

   try
   {

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

能接受任何異常,但不能確認引起異常的類型??蓪赡馨l(fā)生的異常進行普通處理和清理。

第二種 特定異常處理

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

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

第三種 帶對象的特定異常處理

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

可提供關(guān)于異常的多種異常信息,匹配指定的異?;蚺缮运漠惓n惖漠惓!Mㄟ^異常實例,可得到異常的詳細信息。

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

    }

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

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

以上就是“C#中類的異常處理實例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI