这对我来说很奇怪。runtimeexception
继承自exception
,后者继承自throwable
。
catch(Exception exc) { /* won't catch RuntimeException */
但是
catch(Throwable exc) { /* will catch RuntimeException */
for(Callback cb : callbacks) {
try {
cb.call(item);
}
catch(Exception exc) {
logger.error("Error in callback: ", exc);
}
}
还有,这有点企业设计的味道。不同的程序员或团队可以添加回调来处理该项,但它们应该相互隔离。这意味着,作为负责将这些回调相互隔离的程序员,我不应该依赖它们来确保错误不会溜走。捕捉exception
应该是正确的,但这并不是因为runtimeexception
会漏过。所以我更普遍的问题是:这里什么是好的模式?只是catch(Exception RuntimeException exc)
,我认为这是由于继承导致的语法错误?
问题的前提有缺陷,因为捕获exception
确实捕获了runtimeexception
。演示代码:
public class Test {
public static void main(String[] args) {
try {
throw new RuntimeException("Bang");
} catch (Exception e) {
System.out.println("I caught: " + e);
}
}
}
输出:
I caught: java.lang.RuntimeException: Bang
如果出现以下情况,循环将出现问题:
也许这就是你看到的?
本文向大家介绍Java Exception 捕获和显示实例详解,包括了Java Exception 捕获和显示实例详解的使用技巧和注意事项,需要的朋友参考一下 Java Exception 捕获和显示实例详解 在进行Java B/S架构开发时,经常有这样的场景:后端处理业务逻辑,前端负责展示,当后端处理出现异常时,如何把错误信息展示给前台呢?错误信息栈通常很多,对开发人员查找问题比较方便,但对
export class SearchService { ... .map((response) => response.json()) .catch((e) => { if (e.status >== 500) { return cachedVersion(); new Error(`${ e.status
问题内容: 任何Throwable都可以被捕获 输出: 因此,如果在初始化块期间做不好的事情,我希望能够捕获ExceptionInInitializerError。但是,以下操作无效: 输出: 并且如果我更改代码以另外捕获ArrayIndexOutOfBoundsException 被捕获的是ArrayIndexOutOfBoundsException: 谁能告诉我为什么呢? 问题答案: 顾名思义
问题内容: 此问题与跨域资源共享(CORS)有关。 如果在发出CORS请求时出现错误,Chrome(以及AFAIK其他浏览器)会将错误记录到错误控制台。消息示例可能如下所示: XMLHttpRequest无法加载。原产地不被访问控制允许来源允许的。 我想知道是否有办法以编程方式获取此错误消息?我尝试将调用包装在try/catch中,也尝试添加事件处理程序。两者均未收到错误消息。 问题答案: 看到: