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

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

分享到微博請遵守國家法律
平谷区| 六盘水市| 高雄市| 平泉县| 明水县| 昌宁县| 唐山市| 缙云县| 郓城县| 咸宁市| 蒲江县| 平凉市| 柏乡县| 阳原县| 海城市| 淮南市| 政和县| 罗源县| 阜阳市| 鄱阳县| 崇义县| 江都市| 黄大仙区| 达拉特旗| 北辰区| 邯郸市| 广西| 敦煌市| 綦江县| 饶阳县| 前郭尔| 铜川市| 兴海县| 邵东县| 黔江区| 邹城市| 西盟| 沈丘县| 荔波县| 固原市| 临潭县|