您好,登錄后才能下訂單哦!
今天小編給大家分享一下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è)資訊頻道。
免責(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)容。