0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Java中異常處理原則總結(jié)

汽車玩家 ? 來源:今日頭條 ? 作者:咔咔侃技術(shù) ? 2020-04-15 17:32 ? 次閱讀

見過很多人在進行異常處理的時候,直接一個 e.printStackTrace() 就完成了,這是一種非常粗陋的做法,首先會導致應用日志的大量錯誤信息,而很多時候你都不知道這些錯誤信息因何發(fā)生;再者,反應到用戶端將直接導致用戶無法獲取操作的結(jié)果以及失敗的原因。

以下 15 條異常處理的原則來自國外的博客:

不用使用異常來管理業(yè)務邏輯,應該使用條件語句。如果一個控制邏輯可通過 if-else 語句來簡單完成的,那就不用使用異常,因為異常會降低代碼的可讀性和性能,例如一些 null 的判斷邏輯、除0的控制等等;

異常的名字必須清晰而且有具體的意思,表示異常發(fā)生的問題,例如 FileNotFoundException 就很清晰直觀

當方法判斷出錯該返回時應該拋出異常,而不是返回一些錯誤值,因為錯誤值難以理解而且不夠直觀,例如拋出 FileNotFoundException 異常,而不是返回 -1 或者 -2 之類的錯誤值。

應該捕獲指定的異常,而不是 catch(Exception e) 了事,這對性能、代碼的可讀性以及諸多方面都有好處

Null 的判斷邏輯并不是一成不變的,當方法允許返回 null 的時候使用 if-else 控制邏輯,否則就拋出 NullPointerException

盡量不要二次拋出異常,如果非得這么做的話,拋出同一個異常示例,而不是重新構(gòu)建一個異常對象,這對性能是有幫助的,而且外層調(diào)用者可獲取真實的異常信息

定義你自己的異常類層次,例如 UserException 和 SystemException 分別代表用戶級別的異常信息和系統(tǒng)級別的異常信息,而其他的異常在這兩個基類上進行擴展

明確的使用不同的異常類型:

Fatal: System crash states.

Error: Lack of requirement.

Warn: Not an error but error probability.

Info: Info for user.

Debug: Info for developer.

不要僅僅捕獲異常而不做任何處理,不便于將來維護

不要多次重復記錄同一個異常,這可以讓我們清晰的了解異常發(fā)生的位置

請使用 finally 來釋放一些打開的資源,例如打開的文件、數(shù)據(jù)庫連接等等

大部分情況下不建議在循環(huán)中進行異常處理,應該在循環(huán)外對異常進行捕獲處理

異常的粒度很重要,應該為一個基本操作定義一個 try-catch 塊,不要為了簡便,將幾百行代碼放到一個 try-catch 塊中

為你的異常生成足夠的文檔說明,至少是 JavaDoc

為每個異常消息定義一個數(shù)值,這對好的文檔來說是非常重要的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2967

    瀏覽量

    104751
收藏 人收藏

    評論

    相關(guān)推薦

    Java的常用異常處理方法 java推薦

    Java,異常情況分為Exception(異常)和Error(錯誤)兩大類,Java異常通常
    發(fā)表于 01-19 17:26

    Java捕獲異常處理的常用方法

    Java,異常情況分為Exception(異常)和Error(錯誤)兩大類,Java異常通常
    發(fā)表于 11-27 11:40

    Java異常處理及其應用

    Java異常處理引出 假設您要編寫一個 Java 程序,該程序讀入用戶輸入的一行文本,并在終端顯示該文本。 程序如下: 1 import ja
    發(fā)表于 11-09 12:03 ?15次下載

    Java包、接口與異常處理(exception) 實驗

    實驗 4 包、接口與異常處理(exception) 一、實驗目的     了解 Java 包(package)、接口(interface)和
    發(fā)表于 09-23 19:00 ?1199次閱讀

    java異常處理的設計與重構(gòu)

    在程序設計,進行異常處理是非常關(guān)鍵和重要的一部分。一個程序的異常處理框架的好壞直接影響到整個項目的代碼質(zhì)量以及后期維護成本和難度。試想一下
    發(fā)表于 09-27 15:40 ?1次下載
    <b class='flag-5'>java</b><b class='flag-5'>異常</b><b class='flag-5'>處理</b>的設計與重構(gòu)

    java異常處理設計和一些建議

    程序設計在程序設計,進行異常處理是非常關(guān)鍵和重要的一部分。一個程序的異常處理框架的好壞直接影響到整個項目的代碼質(zhì)量以及后期維護成本和難度。
    發(fā)表于 09-28 11:48 ?0次下載
    <b class='flag-5'>java</b><b class='flag-5'>異常</b><b class='flag-5'>處理</b>設計和一些建議

    Java異常選擇和使用的誤區(qū)和經(jīng)驗總結(jié)

    本文著重介紹了 Java 異常選擇和使用的一些誤區(qū),希望各位讀者能夠熟練掌握異常處理的一些注意點和原則
    發(fā)表于 11-27 08:54 ?1386次閱讀
    <b class='flag-5'>Java</b><b class='flag-5'>異常</b>選擇和使用的誤區(qū)和經(jīng)驗<b class='flag-5'>總結(jié)</b>

    處理 Java 異常原則的詳細分析

    Java異常提供了一種識別及響應錯誤情況的一致性機制,有效地異常處理能使程序更加健壯、易于調(diào)試。
    的頭像 發(fā)表于 12-25 11:09 ?3721次閱讀
    對<b class='flag-5'>處理</b> <b class='flag-5'>Java</b> <b class='flag-5'>異常</b>三<b class='flag-5'>原則</b>的詳細分析

    Java異常處理機制

    的負擔)。 如果自己能處理的意外情況,盡量就地處理掉,別傳播出去,增加客戶端程序員的負擔。如果非得傳播出去,可以考慮在方法的聲明中用throws關(guān)鍵字傳播運行時異常。 不要隨便自己定義異常
    發(fā)表于 03-26 11:44 ?6次下載

    java教程之如何進行Java異常處理?

    本文檔的主要內(nèi)容詳細介紹的是java教程之如何進行Java異常處理
    發(fā)表于 09-28 17:16 ?0次下載

    Java教程之零點起飛學Java異常處理資料說明

    Java語言提供了異常機制來處理程序運行過程可能發(fā)生的各種非正常事件。通過異常處理機制,大大提
    發(fā)表于 02-20 10:41 ?11次下載
    <b class='flag-5'>Java</b>教程之零點起飛學<b class='flag-5'>Java</b>的<b class='flag-5'>異常</b><b class='flag-5'>處理</b>資料說明

    Java程序設計教程之異常處理的詳細資料說明

    本文檔的詳細介紹的是Java程序設計教程之異常處理的詳細資料說明主要內(nèi)容包括了:1 什么是異常,2異常
    發(fā)表于 02-22 10:27 ?13次下載
    <b class='flag-5'>Java</b>程序設計教程之<b class='flag-5'>異常</b><b class='flag-5'>處理</b>的詳細資料說明

    10個Java編程異常處理最佳實踐

    這里是我收集的10個Java編程中進行異常處理的10最佳實踐。在Java編程對于檢查異常有褒有
    的頭像 發(fā)表于 05-03 17:49 ?1932次閱讀

    Java高級編程之異常處理

    對于我們所開發(fā)的程序而言,錯誤是無法避免的。本文闡述了如何運用java異常處理機制為我們控制和處理異常的出現(xiàn),從而保證程序的安全性和可用性
    發(fā)表于 07-08 16:14 ?19次下載
    <b class='flag-5'>Java</b>高級編程之<b class='flag-5'>異常</b><b class='flag-5'>處理</b>

    Java怎么排查oom異常

    Java的OOM(Out of Memory)異常是指當Java虛擬機的堆內(nèi)存不足以容納新的對象時拋出的異常。OOM
    的頭像 發(fā)表于 12-05 13:47 ?1252次閱讀