から拡張された 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. ?
タイプチェッカーを満たすために、なぜこの不要なラッピングが必要なのですか?