2013-05-31 67 views
1

我知道這是question的可能重複。但是對這個問題的答案包括catch (..|..)中的|,這在早期的Java版本中是不受支持的。但我必然會使用舊版本。我對任何類型的異常都有同樣的迴應。所以,我想我的catch語句組合於一身,這樣的:有沒有辦法在單個catch子句(OLD JAVA VERSIONS)中捕獲多個Java異常?

try {...} 
catch(Excetion1 e1 OR Exception2 e2 OR etc) 
{ 
... 
} 

我試圖用哈希|而不是OR,沒有結果。有沒有解決舊Java版本的問題?

+1

趕上(Exception1 | Exception2例如) –

+0

「對於較舊的Java版本,是否有任何解決方法?」號碼 –

回答

1

如果你對所有的異常相同的響應,那麼你可以簡單地使用

try {...} 
catch(Exception ex) 
{ 
... 
} 
+1

這個解決方案適合我...它看起來不錯...我希望它適用於更老版本。 – Buras

+1

捕捉異常不是一個很好的解決方案。如果需要的話,這往往是一個糟糕的應用程序設計的症狀。如果它是一個大項目,我會建議你創建自己的一套例外。對於較小的項目處理單獨拋出的異常,不要捕獲所有異常。 – Vegard

+0

@Vegard,謝謝你的建議(+1)。我正在處理一個Web應用程序。例外情況是不同的,但是...我需要的只是暫時的快捷方式...直到我切換java版本 – Buras

5

引述documentation

在Java SE 7和更高版本,一個catch塊可以處理多種類型的例外

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

的如果它不爲你工作,確保你使用的是Java 7 JRE。

+1

+1我必須說他們發現了最醜陋的語法...... :) –

+0

+1 ,,很好的信息:) – stinepike

2
Java 6中

:沒有

在Java 7中,是:

catch(Exception1 | Exception2 e)