java - 如何仅捕获异常类型
问题描述
有没有办法只基于异常类型进行捕获,而不使用标识符,就像 Python 那样。当我尝试以下操作时,编译器抱怨缺少标识符:
try {
doSthThatThrows();
} catch (IOException) {
handleIOException();
} catch (IllegalArgumentException) {
handleArgumentException();
}
…报告此错误:
Main.java:19: error: <identifier> expected
} catch(IllegalArgumentException)
^
1 error
解决方案
在纯 Java 中,名称必须有一个标识符,并且不能使用下划线作为名称(避免在Groovy中提供名称/标识符的常用方法)。
请参阅 Oracle 的文章,Catching Multiple Exception Types and Rethrowing Exceptions with Improvement Type Checking
更改您的代码以命名引发异常的变量。例如,e
在下面的代码中。请注意,您可以在catch
语句中循环使用相同的变量名称。
try {
doSthThatThrows();
} catch ( IOException e ) {
…
} catch ( IllegalArgumentException e ) {
…
}
推荐阅读
- amazon-web-services - Prometheus Metrics 用于在 AWS 中查找未标记和未充分利用的资源
- apache - 用于节点服务器的 Apache 反向代理
- sql - oracle中如何使用分组功能
- bitcoin - BIP143,原生 P2WPKH,示例 txin 脚本?
- java - 将事件侦听器添加到 MotiveWave UI
- java - java泛型的类型不匹配
- javascript - 嵌套数组树节点 JS
- swift - 使用滑块更改 nslayout 约束大小
- html - CSS flexBox 不会定位到底部
- visual-studio-code - 如何在 VsCode 终端中使用行号获取输出?