如何仅捕获异常类型

时间:2018-12-03 03:18:16

标签: java exception-handling try-catch

是否有任何方法可以仅根据异常类型进行捕获,而无需使用标识符,就像Python一样。当我尝试以下操作时,编译器会抱怨缺少标识符:

try {
    doSthThatThrows();
} catch (IOException) {
    handleIOException();
} catch (IllegalArgumentException) {
    handleArgumentException();
}

…报告此错误:

Main.java:19: error: <identifier> expected
    } catch(IllegalArgumentException)
                                    ^
1 error

1 个答案:

答案 0 :(得分:1)

在普通Java中,您必须具有名称的标识符,并且您必须cannot use an underscore for the name(避免在Groovy中使用名称/标识符的一种常用方法)。

请参阅Oracle的文章Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking

更改代码以为引发异常的变量命名。例如,下面的代码中的e。请注意,您可以在catch语句中循环使用相同的变量名。

try {
    doSthThatThrows();
} catch ( IOException e ) {
    …
} catch ( IllegalArgumentException e ) {
    …
}