亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                「C#點滴」 關于異常處理的一些最佳實踐

                1.重新拋出異常時使用 throw代替 throw ex

                如果要重新拋出異常,請直接使用 throw ; 因為在 catch 塊中使用 throw ex 會丟失堆棧信息,throw 則不會。當然,如果對異常不做任何處理,只是簡單地重新拋出,這種做法也是不可取的。

                var client = new HttpClient(); string? result = null; try { result = await client.GetStringAsync(“http://www.baidu.com”); } catch(Exception ex) { //…一些處理異常的代碼 // 直接使用 throw 而非 throw ex throw; } return result;

                2.任何時候都不要吞沒異常

                有些初學者為了不讓程序拋出異常,簡單地用空 catch 語句吞沒異常,這是典型掩耳盜鈴,非常壞的習慣!對于異常,要做相應的處理,至少也要重新拋出!

                var client = new HttpClient(); string? result = null; try { result = await client.GetStringAsync(“http://www.baidu.com”); } catch { // 錯誤,堅決杜絕!簡單粗暴地 // 吞沒了異常,典型的掩耳盜鈴 } return result;

                3. 使用多個 catch 捕獲不同類型的異常

                var client = new HttpClient(); string? result = null; try { result = await client.GetStringAsync(“http://www.baidu.com”); } catch (HttpRequestException ex) { // 處理 HttpRequestException 的代碼 } catch (TaskCanceledException ex) { // 處理 TaskCanceledException 的代碼 result = null; }

                4.使用過濾器更加精確地處理異常

                var client = new HttpClient(); string? result = null; try { result = await client.GetStringAsync(“http://www.baidu.com”); } catch (HttpRequestException ex) when (ex.StatusCode == HttpStatusCode.Forbidden) { // 處理 403 錯誤的代碼 } catch (HttpRequestException ex) when (ex.StatusCode == HttpStatusCode.NotFound) { // 處理 404 錯誤的代碼 } return result;

                5.使用日志記錄異常

                產生異常后,應使用日志系統(tǒng)記錄異常。記錄異常時,應提供具體有意義的說明,同時記錄異常對象本身。

                catch (FileNotFoundException ex) { // 不推薦,信息太過模糊 this.logger.logError(ex,”發(fā)生了一些錯誤”); // 不推薦,沒有記錄異常對象本身,丟失了堆棧等重要信息 this.logger.logError(“找不到請求的文件”); // 推薦,記錄異常對象的同時提供有意義的說明 this.logger.LogError(ex, “找不到請求的文件”); }

                6.盡量使用系統(tǒng)預先定義好的異常

                因為系統(tǒng)預定義的異常知曉度高,語義明確,讓第三方開發(fā)者更容易理解。比如:

                • DivideByZeroException 零除異常
                • ArgumentNullException,參數為空異常
                • InvalidOperationException,非法操作異常
                • IndexOutOfRangeException,索引超界異常

                在絕大多數情況下,系統(tǒng)預定義的異常足夠使用了。只有在系統(tǒng)預定義異常無法滿足要求的時候,才考慮自定義異常。自定義的異常應主要集中在業(yè)務和領域層面,異常的命名應該遵循 XxxException 的形式。

                鄭重聲明:本文內容及圖片均整理自互聯(lián)網,不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月13日 06:08
                下一篇 2022年6月13日 06:08

                相關推薦

                • 計算機網絡技術論文(計算機網絡技術論文七千字)

                  今天小編給各位分享計算機網絡技術論文的知識,其中也會對計算機網絡技術論文七千字進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧! 計算機網絡方面的論文3000字…

                  2022年11月26日
                • 前三季度,市場規(guī)模超過五萬億元 信息消費展現蓬勃生機

                  家居企業(yè)個性化全屋定制系統(tǒng),備受消費者青睞;主打專業(yè)電競的新款高性能便攜式計算機,銷量表現創(chuàng)新高;物流企業(yè)推出數智化供應鏈興農服務項目,助力優(yōu)質農產品出深山…… 不久前,工信部發(fā)布…

                  2022年11月24日
                • 免費清理c盤的軟件(清理c盤空間不影響系統(tǒng))

                  電腦用久了慢如龜速,還卡頓,這最大的原因啊就是C盤空間不足造成的。 即使電腦配置再好,或者硬盤再快,如果長時間沒有打掃C盤,打開文件或者穩(wěn)定之類的,都卡得讓人頭大。 這時候呢不要去…

                  2022年11月24日
                • ipad怎么刷機(ipad怎么刷機重新激活)

                  今天小編給各位分享ipad怎么刷機的知識,其中也會對ipad怎么刷機重新激活進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧! ipad密碼忘了怎么刷機? ip…

                  2022年11月24日
                • win11怎么退回win10 win11怎么還原到win10

                  許多朋友在更新完win11后發(fā)現使用起來不方便,而且有不少漏洞和bug,有時候還會出現卡頓,因此想要還原到win10系統(tǒng),但是不知道是否可以還原,下面就跟著小編一起來操作一下吧。 …

                  2022年11月22日
                • 微信健康碼怎么注銷重新申請健康碼 怎么更換綁定人

                  在疫情常態(tài)化的管理之下,出行都需要健康碼,那么如果因為種種原因注銷了健康碼怎么辦呢?這種情況下是否還可以再申請健康碼呢?下面一起來看看了解一下吧! 微信健康碼注銷了還能申請嗎 健康…

                  2022年11月22日
                • 不遷怒,不貳過一《論語》(不遷怒不貳過是孔子哪位弟子)

                  不遷怒,不貳過。 ——《論語》 犯了錯誤,不要遷怒別人,并且不要再犯第二次。這樣的人,才稱得上是一個有覺悟的人。只有那些沒有開悟,沒有活明白的人,才會好了傷疤忘了痛,反復多次犯同樣…

                  2022年11月22日
                • 笑死!華人推特員工陪馬斯克熬夜加班后光速被裁

                  買下推特后,埃隆?馬斯克對其進行了大刀闊斧的改革。今日早間,他還發(fā)布推文,貼出了他凌晨大約 1 點 30 分在推特舊金山總部與工程師們的合影。他表示剛與推特工程師們審查完代碼。正準…

                  2022年11月21日
                • ios16.1.1續(xù)航怎么樣 ios16.1.1耗電信號問題改善了沒

                  ios系統(tǒng)雖然好用,但是它的續(xù)航信號總是被人吐槽,以至于每次系統(tǒng)升級,用戶對于信號和續(xù)航還要發(fā)熱問題都非常關心,最新推送的ios 16.1.1怎么樣呢,續(xù)航、信號及發(fā)熱改善了嗎,別…

                  2022年11月21日
                • 馬斯克凌晨一點半曬“代碼審查”現場,編排他的段子比瘋狂星期四還多

                  夢晨 Pine 發(fā)自 凹非寺 量子位 | 公眾號 QbitAI 每一個真正會寫代碼的人,請在下午2點到總部10層報到。 每一個真正會寫代碼的人,請在下午2點到總部10層報到。 馬斯…

                  2022年11月21日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息