在Try块中,为多个异常创建一个Catch还是为每个异常创建一个Catch更好?
问题描述:
我很好奇哪一个更实用,哪些情况下我们需要使用第一个,哪些需要使用第二个?例如,在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*/;
}
答
你需要不同的方式处理每一个例外?如果是,则有不同行为的catch块。如果你想以同样的方式处理所有的异常,一个catch块就可以了。
答
完全由TangledUpInBlue回答,如果只有你需要以不同的方式处理它,并且需要对不同类型的动作采取不同的行动,请使用单独的捕获。
否则使用父类Exception
,我为人人:你想如何处理每个错误
try{
}
catch(Exception e){
}
这要看情况。你是否希望每个错误都发生同样的事情,还是每个错误都需要一个特定的错误? –
@Mena他们都可以被命名为'e',在这种情况下这不是问题。 – JonK