代码:
//首先有个变量case
private Throwable cause = this;
public synchronized Throwable initCause(Throwable cause) {
// 保证只能调用一次
if (this.cause != this)
throw new IllegalStateException("Can't overwrite cause");
// 不能设置自身
if (cause == this)
throw new IllegalArgumentException("Self-causation not permitted");
this.cause = cause;
return this;
}
作用:
将cause设置为当前类的默认cause值,保存此 cause,以便以后通过 getCause() 方法获取它。