• 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

  • 相关阅读:
    04.Spark的核心组件
    02.Spark 标签生成(Java和Scala的两种实现)
    01.Spark(spark shell实现word count)
    Scala--尾递归--泛型--类型上下限界定--多重界定--视图界定--型变(协变--逆变)--隐式转换--SAM
    01.安装JDK配置环境变量
    Scala模式匹配--样例类--密封样例类--偏函数
    00.Spark--安装Spark
    Scala知识点总结(上半部分)
    01. Java的经典排序--选择排序--冒泡排序--折半查找(二分查找)
    2019-2020学年 20191327《信息安全专业导论》第五周学习总结
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/13849453.html
Copyright © 2020-2023  润新知