当代码抛出许多异常并且句柄相同时,哪个选择更好?
try{
}catch(ExceptionOne e1)
{
someHandle()
}
catch(ExceptionTwo e2){
someHandle()
}
catch(ExceptionThree e3)
{
someHandle()
}
或者
try{
}catch(Exception e1)
{
someHandle()
}
有的书提到遇到异常时,尽量清楚地捕捉它,而不是尝试捕捉所有异常。
那么哪个更好呢?
第一个更好。第二个捕获所有异常,这可能包括一些您不想捕获的异常。
如果您升级到 Java 7,您可以使用可以捕获多种异常的 catch 块,这是一种更简洁的解决方案。
try {
// Something that might throw.
}
catch(ExceptionOne | ExceptionTwo | ExceptionThree e) {
someHandle()
}
如果你不关心异常是什么,你可以抛出一般的“异常:”
try {
...
} catch (Exception e) {
}