假设我有一个名为 BugException 的类,它从RuntimeException
并且 BugException 有一个接受 Throwable 的复制构造函数。
此代码编译和类型检查:
Throwable e = ...;
if (e instanceof BugException) {
throw new BugException(e);
}
为什么会这样:
Throwable e = ...;
if (e instanceof BugException) {
throw e;
}
不编译并给出错误消息:未处理的异常。java.lang.Throwable。?
为什么需要这种不必要的包装来满足类型检查器?