最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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 多個異常?的評論 (共 條)

分享到微博請遵守國家法律
五华县| 青岛市| 汤阴县| 平定县| 江门市| 昆明市| 商河县| 通许县| 宁乡县| 灵川县| 平顶山市| 镇平县| 威海市| 石狮市| 连城县| 五河县| 沈阳市| 荃湾区| 德清县| 新疆| 龙州县| 长寿区| 清丰县| 东乌珠穆沁旗| 浏阳市| 双辽市| 长白| 镇远县| 乐平市| 桦甸市| 息烽县| 安龙县| 拜城县| 平江县| 循化| 泰顺县| 日喀则市| 沙洋县| 卓尼县| 栖霞市| 师宗县|