您好,登錄后才能下訂單哦!
C#中怎么實現(xiàn)異常處理,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
C#異常處理:結(jié)構(gòu)化異常處理
.NET框架提供一種標(biāo)準(zhǔn)的錯誤報告機制稱為結(jié)構(gòu)化異常處理。這種機制依賴于應(yīng)用中報告錯誤的異常。
在.NET中,異常是一些提供錯誤信息的類,你可以某種方式編寫代碼監(jiān)視異常的發(fā)生,然后以一種適當(dāng)?shù)姆椒ㄌ幚懋惓!?/p>
在進行C#異常處理時,你需要在代碼中關(guān)注三個部分:可能導(dǎo)致異常的代碼段(這也通常稱為拋出異常)。當(dāng)執(zhí)行代碼過程中發(fā)生異常時將要執(zhí)行的代碼段(這也通常稱為捕獲異常)。
異常處理后要執(zhí)行的代碼段(可選的)(這也通常稱為結(jié)束塊)。
異常類
在.NET框架中的異常類都派生自SystemException 類。這個類的大部分常用成員如下:
HelpLink是一個鏈接到幫助文件的鏈接,該幫助文件提供異常的相關(guān)信息。
Message是指明一個錯誤細節(jié)的文本。
Source導(dǎo)致異常的對象或應(yīng)用的名稱。
StackTrace是堆棧中調(diào)用的方法列表。
TargetSite是拋出異常的方法名稱。
Try/Catch/Finally 塊
C#中使用Try/Catch/Finally塊處理一個異常。
Try語句指明在執(zhí)行過程中需要監(jiān)視拋出異常的代碼塊。
Catch語句指明了在執(zhí)行了Try代碼塊后應(yīng)該執(zhí)行的代碼塊。這個代碼塊無論異常是否發(fā)生都會執(zhí)行。實際上,它常用于可能要求的清理代碼。
C#異常處理:捕獲所有異常
.NET允許你監(jiān)視某個特定代碼段中發(fā)生的任何異常;然而,你可以指明具體的異常,列表A顯示捕獲所有異常。為了演示如何監(jiān)視異常這個代碼包含了一個錯誤。在列表A,通過聲明一個異常類型的ex變量,可以捕獲try關(guān)鍵字后可能發(fā)生的任何異常;無論代碼中出現(xiàn)何種類型的錯誤,catch語句塊都將執(zhí)行。此外,即使發(fā)生一個錯誤(無論何種類型),finally代碼塊將會執(zhí)行。
C#異常處理:捕獲特定異常
列表B顯示了如何捕獲一個特定的異常。為了演示捕獲異常這段代碼包含一個錯誤。在列表B,通過聲明一個DivideByZeroException類型的變量ex,當(dāng)代碼執(zhí)行時捕獲了一個特定異常(DivideByZeroException)。只有這種類型的錯誤發(fā)生時才會執(zhí)行catch關(guān)鍵字后的語句。此外,即使發(fā)生一個錯誤(在這種情況下的任何類型錯誤),finally語句塊將會執(zhí)行。
關(guān)于C#中怎么實現(xiàn)異常處理問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(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)容。