[英]Difference between throwing new RuntimeException vs casting cause to RuntimeException
之間有區別嗎
} catch (ExceptionType1 e) {
throw new RuntimeException(e);
}
和
} catch (ExceptionType1 e) {
throw (RuntimeException) e.getCause();
}
如果有區別,我應該在 ExceptionType1 中檢查什么以找出哪個更好?
有許多不同之處:
throw new RuntimeException(e);
這將任何異常e
包裝在一個新的RuntimeException
,並拋出這個RunTimeException
另一方面:
throw (RuntimeException) e.getCause();
這會嘗試將任何異常e
的原因轉換為RuntimeException
。 主要區別是:
e
的詳細信息,因為您只嘗試拋出它的原因(可能為空)RuntimeException
繼承的,也可能是不可轉換的,在這種情況下會發生ClassCastException
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.