2014-01-13 55 views
1

我正在創建一個Java應用程序,它必須寫入數據庫並與另一個應用程序交談。這兩項任務都應以全部或全部的方式進行。異常處理以確保全有或全無執行

try{ 
    //.. execute JDBC query 
    //.. talk to other application 
    //.. commit JDBC query 
} catch (Exception e){ 
    //.. rollback JDBC query 
} finally { 
    //.. close JDBC objects 
} 

在這種情況下,是否可以接受Exception而不是Exception的子類,並回滾?

+0

是的,您希望捕獲JDBC查詢或與其他應用程序通信時可能出錯的任何內容。 –

+0

是的..看到,你正在做一個獨立於被捕獲的異常的Rollback ...因此,不要處理幾個不同的catch語句來做「同樣的事情」(你不是處理不同的異常)以相同的方式.. – TheLostMind

回答

2

除非您想針對不同的異常採取不同的行爲(這似乎並非如此),您所做的事情是正確的,因爲您希望執行相同的操作而不管異常。

不過請注意,請確保您記錄異常。由於您正在處理應用程序,因此向它發送某種通知,指出發生了錯誤,這也可以幫助曾經使用該應用程序的人。

+0

提及有關記錄異常的+1 ... :) – TheLostMind

+1

@是的,大多數情況下,簡單的日誌消息可以幫助您節省數小時的代碼挖掘時間。 – npinti