本文較為詳細(xì)的分析了.NET中的異常和異常處理用法。分享給大家供大家參考。具體分析如下:
.NET中的異常(Exception)
.net中的中異常的父類(lèi)是Exception,大多數(shù)異常一般繼承自Exception。
可以通過(guò)編寫(xiě)一個(gè)繼承自Exception的類(lèi)的方式,自定義異常類(lèi)!
異常處理機(jī)制:
復(fù)制代碼 代碼如下:
Try
{
//可能發(fā)生異常的代碼
//后續(xù)代碼
}
//Try以外的代碼
catch(Exception e)
{
}
finally
{
}
上述代碼描述如下
1.誰(shuí)能執(zhí)行
在異常處理中,一旦try里面有了問(wèn)題,程序會(huì)放棄異常的后續(xù)代碼直接跳到catch中。
執(zhí)行完了catch中的代碼,繼續(xù)執(zhí)行Try以外的代碼。
2.關(guān)于catch()中的參數(shù)e
e就是發(fā)生異常的異常類(lèi)對(duì)象,可以任意取名。不是必須叫e的。
3.只拋一個(gè)
一塊try中的代碼只能拋出一個(gè)異常。
為什么呢?
因?yàn)橐坏┊惓>蛼伋隽税。竺嬗幸膊粓?zhí)行了呀!
4.獲取信息
可以通過(guò) e.Message獲取異常信息
5.必須執(zhí)行
finally 無(wú)論如何都會(huì)執(zhí)行
6.可以沒(méi)有catch
可以只有 try catch
也可以只有try finally
優(yōu)秀的異常處理作風(fēng)
1.不要逃避問(wèn)題不要只把異常catch住,什么都不做,或者只是打印一下,這不是優(yōu)秀的“異常處理”作風(fēng)。
不知道怎么處理異常,就不要catch。讓他暴露出來(lái)。既然發(fā)生異常了,問(wèn)題就肯定是有的,逃避不是辦法,直面他,才能解決他。尤其在分層的項(xiàng)目中。會(huì)讓程序陷入深度的邏輯混亂狀態(tài)。而問(wèn)題被藏起來(lái)了,你甚至不知道哪里發(fā)生了問(wèn)題。
2.如果真的遇到亂try、catch的程序員怎么辦?
vs很強(qiáng)大,它想到了這種情況。點(diǎn)擊【調(diào)試】【異?!窟M(jìn)入這樣一個(gè)工具,選中第二行 的引發(fā)選項(xiàng)。
這樣在調(diào)試的時(shí)候,無(wú)論是否try catch都會(huì)暴漏出異常。我們想要的信息就找到了。
希望本文所述對(duì)大家的.NET程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- 一些.NET對(duì)多線(xiàn)程異常處理技巧分享
- .NET(C#):Emit創(chuàng)建異常處理的方法
- ASP.NET MVC異常處理模塊詳解
- ASP.NET Core異常和錯(cuò)誤處理(8)
- 總結(jié)十條.NET異常處理建議
- ASP.NET mvc異常處理的方法示例介紹
- ASP.NET MVC下基于異常處理的完整解決方案總結(jié)
- 關(guān)于.NET異常處理的思考總結(jié)
- ASP.NET MVC中異常處理&自定義錯(cuò)誤頁(yè)詳析
- .net中捕捉全局未處理異常的三種方式示例