问答详情
源自:1-7 Java 中的异常链

Java中的异常链

newExc.initCause(e); 什么意思?

提问者:慕数据3252561 2018-12-13 10:32

个回答

  • 旧人旧城那点事儿
    2018-12-13 11:57:35
    已采纳

    把 e 这个异常结果放进 RuntimeException 运行时异常里面,从而异常抛出 知道是哪里错误,并且是由于什么异常引起这个错误,initCause() 可以追溯到源头,可以链式查看,从而更快定位到错误。

  • 慕移动9181930
    2022-03-23 10:22:47

    当前老师如果有事或者身体不舒服等特殊情况的时候,会找其他老师客串一下,以免耽误课程上线的时间@PengCheng~

  • 慕数据3252561
    2018-12-14 14:40:28

    谢谢!

  • 张子游zy
    2018-12-13 13:05:05

    initCause

    public Throwable initCause(Throwable cause)
    • 将此 throwable 的 cause 初始化为指定值。(该 Cause 是导致抛出此 throwable 的throwable。)

      此方法至多可以调用一次。此方法通常从构造方法中调用,或者在创建 throwable 后立即调用。如果此 throwable 通过 Throwable(Throwable) 或 Throwable(String,Throwable) 创建,此方法甚至一次也不能调用。


      • 参数:

      • cause - 原因(保存此 cause,以便以后通过 getCause() 方法检索它)。(允许 null 值,指出 cause 是不存在的或是未知的。)

      • 返回:

      • 对此 Throwable 实例的引用。

      • 抛出:

      • IllegalArgumentException - 如果 cause 是此 throwable。(throwable 不能是它自己的 cause。)

      • IllegalStateException - 如果此 throwable 通过 Throwable(Throwable) 或 Throwable(String,Throwable) 创建,或者此方法已经在此 throwable 上进行调用。

      • 从以下版本开始:

      • 1.4