在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    「C#點(diǎn)滴」 關(guān)于異常處理的一些最佳實(shí)踐

    1.重新拋出異常時(shí)使用 throw代替 throw ex

    如果要重新拋出異常,請(qǐng)直接使用 throw ; 因?yàn)樵?catch 塊中使用 throw ex 會(huì)丟失堆棧信息,throw 則不會(huì)。當(dāng)然,如果對(duì)異常不做任何處理,只是簡(jiǎn)單地重新拋出,這種做法也是不可取的。

    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.任何時(shí)候都不要吞沒異常

    有些初學(xué)者為了不讓程序拋出異常,簡(jiǎn)單地用空 catch 語句吞沒異常,這是典型掩耳盜鈴,非常壞的習(xí)慣!對(duì)于異常,要做相應(yīng)的處理,至少也要重新拋出!

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

    3. 使用多個(gè) 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 錯(cuò)誤的代碼 } catch (HttpRequestException ex) when (ex.StatusCode == HttpStatusCode.NotFound) { // 處理 404 錯(cuò)誤的代碼 } return result;

    5.使用日志記錄異常

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

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

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

    因?yàn)橄到y(tǒng)預(yù)定義的異常知曉度高,語義明確,讓第三方開發(fā)者更容易理解。比如:

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

    在絕大多數(shù)情況下,系統(tǒng)預(yù)定義的異常足夠使用了。只有在系統(tǒng)預(yù)定義異常無法滿足要求的時(shí)候,才考慮自定義異常。自定義的異常應(yīng)主要集中在業(yè)務(wù)和領(lǐng)域?qū)用妫惓5拿麘?yīng)該遵循 XxxException 的形式。

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

    相關(guān)推薦

    • 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)論文(計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)論文七千字)

      今天小編給各位分享計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)論文的知識(shí),其中也會(huì)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)論文七千字進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! 計(jì)算機(jī)網(wǎng)絡(luò)方面的論文3000字…

      2022年11月26日
    • 前三季度,市場(chǎng)規(guī)模超過五萬億元 信息消費(fèi)展現(xiàn)蓬勃生機(jī)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      夢(mèng)晨 Pine 發(fā)自 凹非寺 量子位 | 公眾號(hào) QbitAI 每一個(gè)真正會(huì)寫代碼的人,請(qǐng)?jiān)谙挛?點(diǎn)到總部10層報(bào)到。 每一個(gè)真正會(huì)寫代碼的人,請(qǐng)?jiān)谙挛?點(diǎn)到總部10層報(bào)到。 馬斯…

      2022年11月21日

    聯(lián)系我們

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