C#中類的異常處理詳解

前言

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

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

異常是程序中的運行時錯誤,它違法瞭系統約束或應用程序約束,或出現瞭在正常操作時未預料的情形。

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

異常

關於異常,在C#中通過try語句和處理異常機制類保證異常的捕獲,防止由於異常的未捕獲導致整個程序出現異常提醒,甚至出現崩潰。

異常的要求

try塊包含為避免出現異常而被保護的代碼

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

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

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();
    }
}

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

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

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

在C#中有很多不同類型的異常可能被發生,BCL定義瞭許多類,每一個類代表一個指定的異常類型。當一個異常發生時,CLR首先創建該類型的異常對象,其次尋找適當的catch子句以處理它。(所有的異常類都派生自System.Exception類)

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

第一種 一般異常處理

   try
   {

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

能接受任何異常,但不能確認引起異常的類型。可對可能發生的異常進行普通處理和清理。

第二種 特定異常處理

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

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

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

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

可提供關於異常的多種異常信息,匹配指定的異常或派生自它的異常類的異常。通過異常實例,可得到異常的詳細信息。

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

    }

這裡需要特別說明下,關於finally中的代碼,不管異常是否被捕獲,它都會被執行。

在finally中適合存放釋放資源或後續處理的代碼。

基礎知識日更已經29天,如果大傢還想繼續,可以給個關註,感謝您的支持。

寄語

人生短暫,我不想去追求自己看不見的,我隻想抓住我能看得見的。

總結

到此這篇關於C#中類的異常處理詳解的文章就介紹到這瞭,更多相關C#類異常處理內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: