首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Throwable cause的使用

先来看一下API中对cause的解释: Throwable 包含了其线程创建时线程执行堆栈的快照。它还包含了给出有关错误更多信息的消息字符串。...最后,它还可以包含 cause(原因):另一个导致此 throwable 抛出的 throwable。此 cause 设施在 1.4 版本中首次出现。...导致 throwable cause 的一个理由是,抛出它的类构建在低层抽象之中,而高层操作由于低层操作的失败而失败。...让低层抛出的 throwable 向外传播是一种糟糕的设计方法,因为它通常与高层提供的抽象不相关。此外,这样做将高层 API 与其实现细节关联起来,假定低层异常是经过检查的异常。...导致 throwable cause 的另一个 cause 是,抛出它的方法必须符合通用接口,而通用接口不允许方法直接抛出 cause。

1.7K30

JDK错误用法——throwable.getCause

这就找到问题的关键了,如图,原来的代码使用了 event.getCause()方法,event 是 Throwable 类型。查看该方法: ?...可以看到源码是判断 cause 和自身是否相等,如果相等则返回 null,如果不等则返回 cause; 注释的意思是:如果它的”cause“存在则返回这个异常的”cause“,否则返回空(”cause“是”throwable...发生的原因“)这个方法返回了由其他几个以 Throwable 类型参数的构造方法,或者”initCause(Throwable)“方法设置的”cause“。...这适用于将异常原因加到”Throwable“所形成的的“遗留链式抛出”。注意,所有调用 getCause 方法来确定抛出的原因的 PrintStackTrace 方法不需要重写。

61810

java中的最顶级的异常类Throwable

参考链接: Java中的链式异常 Throwable类是整个异常体系类的父级类,当然最终追根溯源到底的父类当然要归于Object类。...Throwable类实现了Serializable接口,表示Throwable可以进行序列化,继承自Object类,他的子类主要是Error和Exception类还有一个StackRecorder类(不是很常见...从扩展性上而言,由于Throwable实现的是异常类中通用的部分,那么,如果再有特殊的异常分类的话,可以通过继承Throwable的方式去扩展该异常体系,当然,我们最常用的可能不会涉及到直接继承Throwable...Set dejaVu =?? ? ? ? ? ? ? Collections.newSetFromMap(new IdentityHashMap<Throwable, Boolean...属性,初始化为其本身this, 如果这个throwable中cause要么是抛出异常的类,要么是null,如果是Throwable类本身的话,那么只能说明Throwable类没有初始化完毕。

86430
领券
http://www.vxiaotou.com