1. 程式人生 > >java專案中的異常處理

java專案中的異常處理

java專案中的常用的異常處理情況

1)為可恢復的錯誤使用檢查型異常,為程式設計錯誤使用非檢查型錯誤。
  選擇檢查型還是非檢查型異常,對於Java程式設計人員來說,總是讓人感到困惑。檢查型異常保證你對錯誤條件提供異常處理程式碼,這是一種從語言到強制你編'寫健壯的程式碼的一種方式,但同時會引入大量雜亂的程式碼並導致其不可讀。當然,如果你有替代品和恢復策略的話,捕捉異常並做些什麼看起來似乎也在理。在Java程式設計中選擇檢查型異常還是執行時異常,更多資訊參考checkedvsuncheckedexceptions。

2)在finally程式塊中關閉或者釋放資源
  這在Java程式設計中,是一個廣為人知的最佳實踐,在處理網路和I0類的時候,相當於一個標準。在finally塊中關閉資源,在正常和異常執行的情況下,保證之前和稀缺資源的合理釋放,這由yfinally塊保證。從Java7開始,該語言有了一項更有趣的功能:資源管理自動化或者ARM塊能實現這一功能。儘管如此,我們仍然要記住在finally塊中關閉資源,這是對於釋放像
FileDescriptors這類,應用在socket和檔案程式設計的情況下的有限資源很重要的。

3)在堆疊跟蹤中包含引起異常的原因
很多時候,當一個由另一個異常導致的異常被丟擲的時候,Java 庫和開放

原始碼會將一種異常包裝成另一種異常。日誌記錄和列印根異常就變得非常重要。Java異常類提供了getCause 方法來檢索導致異常的原因,這些(原因)可以對異常的根層次的原因提供更多的資訊。該Java實踐對在進行除錯或排除故障大有幫助。時刻記住,如果你將一個異常包裝成另一種異常時,構造一個新異常要傳遞源異常。

4)始終提供關於異常的有意義的完整的資訊

      異常資訊是最重要的地方,因為這是程式設計師首先看到的第一個地方,這裡你能找到問題產生的根本原因。這裡始終提供精確的真實的資訊。例如,對比IllegalArgumentException異常的兩條異常資訊:

訊息1:“Incorrect ar gument formethod”

訊息2:“Illegalvaluefor$ {argument} :$ {value}第一條訊息僅說明了引數是非法的或者不正確,但第二條訊息包括了引數名和非法值,而這對於找到錯誤的原因是很重要的。

5)避免過度使用檢查型異常

      檢查型異常在強制執行方面有-定的優勢,但同時它也破壞了程式碼,通過掩蓋業務邏輯使程式碼可讀性降低。只要你不過度使用檢查型異常,你可以最大限度的減少這類情況,這樣做的結果是你會得到更清潔的程式碼。你同樣可以使

      用Java7的新功能,像onecatchb lockformultipleexceptions和automati cr esourc emanagement以移除重複項。

 

 

 

 

 

 

 

 

來源:百度