C#中类的异常处理
歡迎您成為我的讀者,希望這篇文章能給你一些幫助。
前言
日常編碼過程中,最重要的技能不是說你學會使用很多最新的編程技術或者做出一個高大上的系統。而是你在寫代碼過程中,對異常的處理,是否系統可以穩定,健壯。
對于異常的處理在C#中是通過try/cath機制來捕獲的,接下來我們一起來看看。
異常是程序中的運行時錯誤,它違反了系統約束或應用程序約束,或出現了在正常操作時未預料的情形。
比如對于某些變量的非正常賦值或者在參與運算操作時出現錯誤等。
異常
關于異常,在C#中通過try語句和處理異常機制類保證異常的捕獲,防止由于異常的未捕獲導致整個程序出現異常提醒,甚至出現崩潰。
異常的要求
try塊包含為避免出現異常而被保護的代碼
catch子句部分含有一個或多個catch子句。(處理異常代碼段也叫做異常處理子程序)
finally塊含有在所有情況下都要被執行的代碼,無論有沒有異常發生。
在處理業務代碼時,必須在剛開始就將邏輯上的錯誤都考慮清楚進行驗證處理,比如判空,非正常值,值類型錯誤等。
其次在通過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# 探索 ML.NET 中的不同机
- 下一篇: C# 使用多个异步方法