首頁 > 其他

Java 例外處理的誤區和經驗總結(一)

2019-12-10 13:37:33

Java 異常選擇和使用中的一些誤區,希望各位讀者能夠熟練掌握例外處理的一些注意點和原則,注意總結和歸納。只有處理好了異常,才能提升開發人員的基本素養,提高系統的健壯性,提升使用者體驗,提高產品的價值

1

對於Java程式報錯的異常,我們通常可以歸為如下圖所示的結構


2

誤區一、將異常直接顯示在頁面或用戶端

將異常直接列印在用戶端的例子屢見不鮮,以 JSP 為例,一旦程式碼執行出現異常,預設情況下容器將異常堆疊資訊直接列印在頁面上。其實從客戶角度來說,任何異常都沒有實際意義,絕大多數的客戶也根本看不懂異常資訊,軟體開發也要盡量避免將異常直接呈現給使用者


3

誤區二、對程式碼層次結構的汙染

我們經常將程式碼分 Service、Business Logic、DAO 等不同的層次結構,DAO 層中會包含丟擲異常的方法,


4

上面這段程式碼咋一看沒什麼問題,但是從設計耦合角度仔細考慮一下,這裡的 SQLException 汙染到了上層呼叫程式碼,呼叫層需要顯式的利用 try-catch 捕捉,或者向更上層次進一步丟擲。根據設計隔離原則,我們可以適當修改成:


5

誤區三、忽略異常

如下例外處理只是將異常輸出到控制台,沒有任何意義。而且這裡出現了異常並沒有中斷程式,進而呼叫程式碼繼續執行,導致更多的異常


6

我們可以把上面的程式碼重構成如下所示.

這個誤區比較基本,一般情況下都不會犯此低階錯誤。


7

利用 Exception 捕捉所有潛在的異常

一段方法執行過程中丟擲了幾個不同型別的異常,為了程式碼簡潔,利用基礎類別 Exception 捕捉所有潛在的異常,如下例所示:



IT145.com E-mail:sddin#qq.com