有时候,我看到

try {

} catch(Throwable e) {

}

而且有时候

try {

} catch(Exception e) {

}

有什么区别?

推荐答案

通过捕捉Throwable,它包括Error子类的东西.通常情况下,你不应该这样做,除非是在一个线程的最高"全面"级别上,你想记录或者以其他方式绝对地处理所有可能出错的事情.在框架类型的应用程序(例如应用程序服务器或测试框架)中,它更为典型,在这种应用程序中,它可以运行未知代码,并且尽可能不受代码出错的影响.

Java相关问答推荐

Collections.binarySearch()使用Collections.reverseOrder()作为比较器返回-1

如何使用解析器组合子解析Java数组类型签名?

为什么我们仍然需要实现noArgsConstructor如果Java默认提供一个非参数化的构造函数?''

Java函数式编程中的双值单值映射

无法初始化JPA实体管理器工厂:无法确定为Java类型<;类>;推荐的JdbcType

自定义批注的外推属性值

如何在antlr4中跳过所有反斜杠-换行符而保留换行符?

迁移到Java 17后,日期显示不准确

在macOS上读取文件会导致FileNotFound,即使文件存在(并且具有权限)

JavaFX:无论何时显示应用程序,如何更改组件/ node 位置?

如何调整JButton的大小以适应图标?

模拟JUnit未检测到返回字符串的方法的任何声纳覆盖

在Spring Boot中使用咖啡因进行缓存-根据输出控制缓存

整数->;双取消框,但双->;int不';t开箱.为什么?

[jdk21][Foreign Function&;Memory API]MemoryLayout::varHandle通过可变数组进行 struct 化的问题

java21预览未命名的符号用于try-with-resources

如何使用我的RLE程序解决此问题

Java泛型方法重载

当我try 返回可选时,Mock无法正常工作

转换为JSON字符串时,日期按天递减-Java