是否有任何方法可以仅根据异常类型进行捕获,而无需使用标识符,就像Python一样。当我尝试以下操作时,编译器会抱怨缺少标识符:
try {
doSthThatThrows();
} catch (IOException) {
handleIOException();
} catch (IllegalArgumentException) {
handleArgumentException();
}
…报告此错误:
Main.java:19: error: <identifier> expected
} catch(IllegalArgumentException)
^
1 error
答案 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 ) {
…
}