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

时间:2012-07-19 00:09:23

标签: java exception

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

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

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

有些书籍在包含异常时会尝试抓住它,不要尝试cacth所有异常。

哪个更好?

2 个答案:

答案 0 :(得分:8)

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

如果升级到Java 7,可以使用catch block that can catch more than one type of exception,这是一个更清洁的解决方案。

try {
    // Something that might throw.
}
catch(ExceptionOne | ExceptionTwo | ExceptionThree e) {
    someHandle()
}

答案 1 :(得分:-1)

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

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

  }