2016-02-12 28 views
1

我很好奇哪一個更實用,哪些情況下我們需要使用第一個,哪些需要使用第二個?例如,在Java7:在Try塊中,爲多個異常創建一個Catch還是爲每個異常創建一個Catch更好?

first.java

try { 
    /* some code that throws these exceptions */ 
} catch (NoSuchAuthorityCodeException e) { 
    throw new MyAPIException("Something went wrong", e); 
} catch (FactoryException e) { 
    throw new MyAPIException("Something went wrong", e); 
} catch (MismatchedDimensionException e) { 
    throw new MyAPIException("Something went wrong", e); 
} catch (TransformException e) { 
    throw new MyAPIException("Something went wrong", e); 
} 

second.java

try { 
    /* some code that throws these exceptions */ 
} catch (NoSuchAuthorityCodeException | FactoryException| MismatchedDimensionException | TransformException e) { 
    /*handle all exceptions*/; 
} 
+3

這要看情況。你是否希望每個錯誤都發生同樣的事情,還是每個錯誤都需要一個特定的錯誤? –

+1

@Mena他們都可以被命名爲'e',在這種情況下這不是問題。 – JonK

回答

4

你需要不同的方式處理每一個例外?如果是,則有不同行爲的catch塊。如果你想以同樣的方式處理所有的異常,一個catch塊就可以了。

1

完全由TangledUpInBlue回答,如果只有你需要以不同的方式處理它,並且需要對不同類型的動作採取不同的行動,請使用單獨的捕獲。

否則使用父類Exception,我爲人人:你想如何處理每個錯誤

try{ 

} 
catch(Exception e){ 

}