第7章-錯誤處理

錯誤處理很重要,但如果它搞亂了代碼邏輯簇宽,就是錯誤的做法

7.1 使用異常而非返回碼

遇到錯誤時,最好拋出一個異常吧享。使調(diào)用代碼整潔魏割,邏輯不亂。

7.2 先寫Try-Catch-Finally

編寫可能出現(xiàn)異常的代碼時钢颂,先寫try-catch-finally钞它。

7.3 使用不可控異常

使用 checked exception 違反開閉原則。所以盡量使用not checked exception

7.4 給出異常發(fā)生的環(huán)境說明

你拋出的每一個異常,都應(yīng)當(dāng)提供足夠的環(huán)境說明遭垛。(表明你該失敗操作的初衷)

7.5 依調(diào)用者需要定義異常類

調(diào)用一些第三方API時要catch的異常種類是第三方API為了自己的代碼而定義的異常類尼桶,作為調(diào)用者應(yīng)該自己打包第三方API返回的異常類型(就是重新封裝一層),以降低依賴锯仪”枚剑可以平移替換第三方API

7.6 定義常規(guī)流程

有時候拋異常的方式會打斷一些正確的業(yè)務(wù)邏輯。那么我們可以創(chuàng)建一個類或配置一個對象庶喜,用來處理特例小腊,將異常行為封裝到特例對象中。這種手法叫做特例模式溃卡。

7.7 別返回null值

返回null值就是給自己增加工作量溢豆,后續(xù)的調(diào)用代碼要做很多的null判斷,毫無意義瘸羡。而且一旦沒有做判斷就會空指針異常漩仙。所以我們應(yīng)該盡量不返回null,拋出異常犹赖、返回特例對象队他、返回Collections.emptyList()...

7.8 別傳遞null值

除非API要求你傳遞null值,否則你盡可能不傳遞null值峻村。

小結(jié)

整潔代碼是可讀的麸折,但也要強(qiáng)固≌匙颍可讀與強(qiáng)固并不沖突垢啼。如果將錯誤處理隔離看待,獨(dú)立于主要邏輯之外张肾,就能寫出強(qiáng)固而整潔的代碼芭析。做到這一步,我們就能單獨(dú)處理它吞瞪,也極大地提升了代碼的可維護(hù)性

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末馁启,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芍秆,更是在濱河造成了極大的恐慌惯疙,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妖啥,死亡現(xiàn)場離奇詭異霉颠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)荆虱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門掉分,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俭缓,“玉大人,你說我怎么就攤上這事酥郭』梗” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵不从,是天一觀的道長惜姐。 經(jīng)常有香客問我,道長椿息,這世上最難降的妖魔是什么歹袁? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮寝优,結(jié)果婚禮上条舔,老公的妹妹穿的比我還像新娘。我一直安慰自己乏矾,他們只是感情好孟抗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钻心,像睡著了一般凄硼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捷沸,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天摊沉,我揣著相機(jī)與錄音,去河邊找鬼痒给。 笑死说墨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的苍柏。 我是一名探鬼主播尼斧,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼序仙!你這毒婦竟也來了突颊?” 一聲冷哼從身側(cè)響起鲁豪,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤潘悼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后爬橡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體治唤,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年糙申,在試婚紗的時候發(fā)現(xiàn)自己被綠了宾添。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖缕陕,靈堂內(nèi)的尸體忽然破棺而出粱锐,到底是詐尸還是另有隱情,我是刑警寧澤扛邑,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布怜浅,位于F島的核電站,受9級特大地震影響蔬崩,放射性物質(zhì)發(fā)生泄漏恶座。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一沥阳、第九天 我趴在偏房一處隱蔽的房頂上張望跨琳。 院中可真熱鬧,春花似錦桐罕、人聲如沸脉让。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侠鳄。三九已至,卻和暖如春死宣,著一層夾襖步出監(jiān)牢的瞬間伟恶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工毅该, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留博秫,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓眶掌,卻偏偏與公主長得像挡育,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子朴爬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,811評論 0 11
  • 阿里巴巴 JAVA 開發(fā)手冊 1 / 32 Java 開發(fā)手冊 版本號 制定團(tuán)隊 更新日期 備 注 1.0.0 阿...
    糖寶_閱讀 7,565評論 0 5
  • 一即寒、編程規(guī)約 (一)命名規(guī)約 【強(qiáng)制】 代碼中的命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結(jié)束召噩。反...
    喝咖啡的螞蟻閱讀 1,509評論 0 2
  • 八母赵、深入理解java異常處理機(jī)制 引子try…catch…finally恐怕是大家再熟悉不過的語句了, 你的答案是...
    壹點(diǎn)零閱讀 1,560評論 0 0
  • 一具滴、整潔代碼 A.混亂的代價 1.有些團(tuán)隊在項目初期進(jìn)展迅速凹嘲,但有那么一兩年的時間卻慢去蝸行。對代碼的每次修改都影...
    ZyBlog閱讀 2,039評論 0 2