169 01 Android 零基础入门 03 Java经常使用工具类01 Java异常 07 异常链 01 异常链简介

169 01 Android 零基础入门 03 Java经常使用工具类01 Java异常 07 异常链 01 异常链简介

本文知识点:异常链简介java

说明:由于时间紧张,本人写博客过程当中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺少文字描述,可能会难以理解。读者若有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步android

异常链简介

异常链的概念

mark

异常链代码示例

异常链代码
mark
mark微信

main方法中调用异常链中的最后一个方法
异常打印的结果显示:只获取到了异常链中最后一个异常方法代码的信息
mark工具

至关于前面2个方法的异常信息是丢失的
mark
这就是一种因为新抛出异常而致使异常信息丢失的这样一种场景。
针对这个问题场景,该如何解决呢?
是否有办法把前2个方法中的异常信息保留下来呢?对象

实际上是有办法的,在Java的API中,实际上提供了这种异常的保留机制。
mark
在Throwable构造方法里,除了有异常描述信息的参数外,还能够添加一个Throwable类型的参数,借由一个已经产生的异常对象和一段新的描述构造一个新的异常对象。
markblog

mark
固然,也能够直接加一个Throwable参数 。直接用旧的,构造新的。
mark博客

这是咱们经过Java的Throwable API中提供的构造方法实现旧对象信息的获取。it

除此以外,还有initCause方法——用一个异常信息,初始化一个新的异常。
它的做用,和上面的构造方法很是相似,因此实际使用,用哪一种形式也均可以。
mark
mark入门

这样修改以后,异常链中的全部异常,均可以打印展现出来了。
也就是说,咱们已经可以准确地把异常的缘由以及它发生的过程记录而且保留下来了。这就是Java中异常链的一种表现形态。基础

异常链总结

mark