五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

編程技巧0001:C# 中如何一次 catch 多個異常?

2022-08-30 22:02 作者:zgcdboy  | 我要投稿

在項目開發(fā)中當(dāng)拋出異常時,簡單的用 System.Exception,但這種會捕獲所有的異常,在只想捕獲已知的幾個異常,然后在這里處理一些特定的業(yè)務(wù)邏輯。

代碼如下:




上面的兩種異常的處理邏輯是一致的,重復(fù)寫了“異常處理” ,是否有辦法可以只寫一次呢?


解決方案

最簡單的方法就是在 catch 作用域中使用 if 語句, 但在 C#6.0 之后就不需要這么麻煩了,可以直接使用新特性 異常過濾器 , 這種特性已經(jīng)被 CLR 直接支持而不僅僅是 MSIL 上的一些小動作,修改后的代碼如下:


上面的代碼僅僅會捕獲 InvalidDataExceptionArgumentNullException 異常,當(dāng)然你可以在 when 子句中弄出更復(fù)雜的語句,比如下面代碼:

值得注意的是:Exception Filters 和 catch 中寫 if 有著不同的語義,當(dāng)?shù)谝粋€ Exception Filters 中的判斷條件不滿足或者在內(nèi)部拋出了異常,代碼會繼續(xù)判斷下一個 Exception Filters ,參考代碼如下:

輸出:General catch

如果 Exception Filter 有多個 true,那么只會命中第一個。




編程技巧0001:C# 中如何一次 catch 多個異常?的評論 (共 條)

分享到微博請遵守國家法律
兴隆县| 威信县| 浦城县| 石首市| 潜江市| 宜春市| 江达县| 闵行区| 华蓥市| 黑河市| 淳化县| 浙江省| 府谷县| 永吉县| 桐梓县| 深泽县| 北票市| 南阳市| 鹰潭市| 东乌珠穆沁旗| 雷山县| 静乐县| 乌鲁木齐县| 双峰县| 右玉县| 灌云县| 成武县| 永胜县| 凤山县| 衡水市| 遂川县| 桃源县| 新宁县| 大田县| 长宁区| 海淀区| 陇西县| 沅江市| 桑植县| 勃利县| 桑日县|