当代码抛出许多异常并且句柄相同时,哪个选择更好?
try{
}catch(ExceptionOne e1)
{
someHandle()
}
catch(ExceptionTwo e2){
someHandle()
}
catch(ExceptionThree e3)
{
someHandle()
}
Run Code Online (Sandbox Code Playgroud)
要么
try{
}catch(Exception e1)
{
someHandle()
}
Run Code Online (Sandbox Code Playgroud)
有些书籍在装饰异常时会尝试抓住它,不要尝试cacth所有异常.
哪个更好?
第一个更好.第二个捕获所有异常,这可能包括一些您不想捕获的异常.
如果升级到Java 7,则可以使用可以捕获多种类型异常的catch块,这是一种更清晰的解决方案.
try {
// Something that might throw.
}
catch(ExceptionOne | ExceptionTwo | ExceptionThree e) {
someHandle()
}
Run Code Online (Sandbox Code Playgroud)