我正在使用反射將某些數據添加到第三方庫中某個類的私有變量中。一路上有大約四種不同的異常可以拋出;所有這些都與思考有關,並且它們都不太可能發生。我對所涉及的類和變量的名稱進行了硬編碼。我不太可能會收到任何未找到的課程或找不到任何字段未找到的錯誤,除非圖書館有一天會升級併發生顯着變化。捕獲幾個異常並重新拋出一個常規異常
我寧願不聲明這四個例外,以便我的調用者處理。他很可能永遠不會看到他們。我想抓住所有這些,並拋出另一個異常來說:「發生了Java反射錯誤;很可能庫已經升級並以與此方法不兼容的方式進行更改。」有沒有可以拋出的標準Java異常,表示只是一般反射錯誤?我應該定義自己的?或者最好只聲明這個方法可以拋出所有可能的反射異常?
爲什麼不只是拋出e.getCause()? Thread.stop()是矯枉過正並且已被棄用 – 2009-01-27 01:22:17
你試過了嗎? e.getCause()返回一個Throwable。如何拋出Throwable而不必聲明它? – 2009-01-29 07:25:02