[英]Java - How can I avoid using try catch statements
我想知道如何避免try-catch語句。 現在我有一個數據庫處理程序,每次運行命令時我都必須在try塊中包圍它,如下所示:
try {
while(levelData.next()) {
if(levelData.getInt("level") == nextLevel) return levelData.getInt("exp");
}
} catch (SQLException e) {
e.printStackTrace();
}
我可以這樣做,以便實際的函數拋出異常或什么? 而不是必須手動把所有這些嘗試? 它主要只是一個美學問題,因為這些試塊看起來很難看。
您可以拋出異常:
public void myMethod() throws SQLException {
while(levelData.next()) {
if(levelData.getInt("level") == nextLevel)
return levelData.getInt("exp");
}
}
您可以使用throws
關鍵字使方法拋出異常,而不是使用try
- catch
塊,但在某些時候需要處理異常。 我發現最令人討厭的是多個catch
語句,但是如果你使用JDK> = 1.7,它們有一個多捕獲選項可用。 對於異常日志記錄,您可以使用log4j庫。
現在我有一個數據庫處理程序, 每次運行命令時我都必須在try塊中包圍它,就像這樣......
我認為其他答案未能解決上述問題。 當我開始使用Java編程時,當我的程序充滿了用於SQL查詢語句的try
- catch
塊時,我討厭它。
我解決它的方法是使用DAO級別層來處理異常。 例如,如果我的程序需要訪問User表,我創建一個UserDAO類。 然后創建查詢並在該DAO類中捕獲異常。
每次發生異常時,我都會執行所需的日志記錄並拋出一個自定義指定的Unchecked Exception ,例如DatabaseErrorException 。 未經檢查的異常與已檢查的異常(如SQLException
)之間的主要區別在於您不會被強制catch
或throw
它,因此它不會使用throws
語句填充您的代碼。
(是的,你可以使用throws來避免使用try
- catch
,但是無論如何你必須在某個地方處理它,並考慮到你的函數在各處throws
。)
然后,我們可以在應用程序的最高級別擁有一個全局過濾器,以捕獲通過該程序傳播的所有這些異常。 通常無法恢復數據庫錯誤,因此這里我們只需要向用戶顯示錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.