2015-05-16 37 views
-1

當我們使用try-catch塊時,我們可以在一個try塊中使用多個catch塊嗎?當try塊存在時,是否必須有catch塊?如何在異常處理中使用try-catch塊

+3

我建議你自己試試它了。你將會學到更多的東西。 –

+0

對於單次嘗試,您可以擁有多個捕獲,但不能以其他方式進行。發生這種情況是因爲一次嘗試可以處理多個異常,但不能處理兩次異常。 – Azerogg

+1

答案是肯定的(用於捕獲不同的異常類型)並且不(try-finally,try-with-resources)。 – fabian

回答

0

由於可以從單個try塊引發不同類型的異常,因此顯然可以將多個catch塊用於一個try塊來捕獲這些異常。 這是必須使用catch塊或finally塊。如果沒有他們,那麼這將是一個編譯錯誤。因此,如果存在try塊,並且沒有finally塊,則必須使用catch塊。

+0

試用資源不需要「catch」或「finally」。 – fabian

0

有兩種可能的方式(例如):

try { 
    // some code to access to a db 

} catch (IOException ex) { 
    logger.log(ex); 
    throw ex; 
} catch (SQLException ex) { 
    logger.log(ex); 
    throw ex; 
} 

由於Java 7,可以用這樣的方式:

try { 
    // some code to access to a db 

} catch (IOException|SQLException ex) { 
    logger.log(ex); 
    throw ex; 
}