initCause()方法是神么意思,老师没有说
初始化为指定值,你可以翻看一下API
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 上进行调用。