3

当代码抛出许多异常并且句柄相同时,哪个选择更好?

try{
}catch(ExceptionOne e1)
{
someHandle()
}
catch(ExceptionTwo e2){
someHandle()
}
catch(ExceptionThree e3)
{
someHandle()
}

或者

try{
}catch(Exception e1)
{
someHandle()
}

有的书提到遇到异常时,尽量清楚地捕捉它,而不是尝试捕捉所有异常。

那么哪个更好呢?

4

2 回答 2

8

第一个更好。第二个捕获所有异常,这可能包括一些您不想捕获的异常。

如果您升级到 Java 7,您可以使用可以捕获多种异常的 catch 块,这是一种更简洁的解决方案。

try {
    // Something that might throw.
}
catch(ExceptionOne | ExceptionTwo | ExceptionThree e) {
    someHandle()
}
于 2012-07-19T00:11:19.297 回答
-1

如果你不关心异常是什么,你可以抛出一般的“异常:”

try {
    ...
} catch (Exception e) {

  }
于 2012-07-19T00:14:38.830 回答