1
假設我有一個名爲BugException的類,它的範圍從RuntimeException
並且BugException有一個需要Throwable的拷貝構造函數。Java中的Throwable和Exception
此代碼編譯和typechecks:
Throwable e = ...;
if (e instanceof BugException) {
throw new BugException(e);
}
爲什麼說:
Throwable e = ...;
if (e instanceof BugException) {
throw e;
}
不編譯,並給出錯誤消息:未處理的異常。 java.lang.Throwable中。 ?
爲什麼這種不必要的包裝來滿足類型檢測?
測試'instanceof'不會改變'e'的靜態類型。 – user2357112
或者你可以簡單地施放,沒有包裝。 – pvg