zoukankan      html  css  js  c++  java
  • 169 01 Android 零基础入门 03 Java常用工具类01 Java异常 07 异常链 01 异常链简介

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

    本文知识点:异常链简介

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

    异常链简介

    异常链的概念

    mark

    异常链代码示例

    异常链代码
    mark
    mark

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

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

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

    mark
    当然,也可以直接加一个Throwable参数 。直接用旧的,构造新的。
    mark

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

    除此之外,还有initCause方法——用一个异常信息,初始化一个新的异常。
    它的作用,和上面的构造方法非常类似,所以实际使用,用哪种形式也都可以。
    mark
    mark

    这样修改之后,异常链中的所有异常,都可以打印展示出来了。
    也就是说,我们已经能够准确地把异常的原因以及它发生的过程记录并且保留下来了。这就是Java中异常链的一种表现形态。

    异常链总结

    mark

  • 相关阅读:
    后端程序员之路 28、一个轻量级HTTP Server的实现
    后端程序员之路 27、LogStash
    后端程序员之路 26、CAP理论
    后端程序员之路 25、Redis Cluster
    后端程序员之路 24、Redis hiredis
    后端程序员之路 23、一个c++的api framework
    后端程序员之路 22、RESTful API
    后端程序员之路 21、一个cgi的c++封装
    后端程序员之路 20、python复习
    flask框架的学习
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/13849453.html
Copyright © 2011-2022 走看看