如何用C#創(chuàng)建用戶(hù)自定義異常淺析
概述
異常是在程序執(zhí)行期間出現(xiàn)的問(wèn)題。C# 中的異常是對(duì)程序運(yùn)行時(shí)出現(xiàn)的特殊情況的一種響應(yīng),比如嘗試除以零。異常提供了一種把程序控制權(quán)從某個(gè)部分轉(zhuǎn)移到另一個(gè)部分的方式。C# 異常處理時(shí)建立在四個(gè)關(guān)鍵詞之上的:try、catch、finally和throw。
try:一個(gè) try 塊標(biāo)識(shí)了一個(gè)將被激活的特定的異常的代碼塊。后跟一個(gè)或多個(gè) catch 塊。catch:程序通過(guò)異常處理程序捕獲異常。catch 關(guān)鍵字表示異常的捕獲。finally:finally 塊用于執(zhí)行給定的語(yǔ)句,不管異常是否被拋出都會(huì)執(zhí)行。例如,如果您打開(kāi)一個(gè)文件,不管是否出現(xiàn)異常文件都要被關(guān)閉。throw:當(dāng)問(wèn)題出現(xiàn)時(shí),程序拋出一個(gè)異常。使用 throw 關(guān)鍵字來(lái)完成。
自定義異常
您也可以定義自己的異常。用戶(hù)自定義的異常類(lèi)是派生自 ApplicationException 類(lèi)。
using System; namespace UserDefinedException { class TestTemperature { static void Main(string[] args) { Temperature temp = new Temperature(); try { temp.showTemp(); } catch(TempIsZeroException e) { Console.WriteLine("TempIsZeroException: {0}", e.Message); } Console.ReadKey(); } } } public class TempIsZeroException: ApplicationException { public TempIsZeroException(string message): base(message) { } } public class Temperature { int temperature = 0; public void showTemp() { if(temperature == 0) { throw (new TempIsZeroException("Zero Temperature found")); } else { Console.WriteLine("Temperature: {0}", temperature); } } }
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
TempIsZeroException: Zero Temperature found
拋出對(duì)象
如果異常是直接或間接派生自 System.Exception 類(lèi),您可以拋出一個(gè)對(duì)象。您可以在 catch 塊中使用 throw 語(yǔ)句來(lái)拋出當(dāng)前的對(duì)象,如下所示:
Catch(Exception e) { ... Throw e }
總結(jié)
到此這篇關(guān)于如何用C#創(chuàng)建用戶(hù)自定義異常的文章就介紹到這了,更多相關(guān)C#用戶(hù)自定義異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實(shí)現(xiàn)中文驗(yàn)證碼的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)中文驗(yàn)證碼功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下2022-12-12C#使用SqlServer作為日志數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于C#使用SqlServer作為日志數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01C#使用dir命令實(shí)現(xiàn)文件搜索功能示例
這篇文章主要介紹了C#使用dir命令實(shí)現(xiàn)文件搜索功能,結(jié)合具體實(shí)例形式分析了C#調(diào)用與使用cmd命令相關(guān)操作技巧,需要的朋友可以參考下2017-07-07C#中dynamic的使用方法及應(yīng)用場(chǎng)景
在 C# 編程中,dynamic 類(lèi)型是一個(gè)非常特殊的類(lèi)型,它在編譯時(shí)并不會(huì)進(jìn)行類(lèi)型檢查,而是在運(yùn)行時(shí)才進(jìn)行類(lèi)型解析,本文將詳細(xì)講解 dynamic 的使用方法、優(yōu)缺點(diǎn)以及一些實(shí)際應(yīng)用場(chǎng)景,需要的朋友可以參考下2024-08-08C#創(chuàng)建一個(gè)Word并打開(kāi)的方法
這篇文章主要介紹了C#創(chuàng)建一個(gè)Word并打開(kāi)的方法,實(shí)例分析了C#操作word的常用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04