2012-01-05 61 views
26

@PostConstruct文檔它說對註解的方法:@PostConstruct和受檢異常

「的方法不能拋出checked異常。」

如何處理例如一個可以拋出這種方法的IOException?只需將它包裝在RuntimeException中,並讓用戶擔心對象的錯誤初始狀態? 或@PostConstruct錯誤的地方來驗證和初始化注入依賴關係的對象?

+0

有趣的是,我沒有注意到。看起來像一個奇怪的限制,因爲該方法被稱爲反射。 – skaffman 2012-01-05 09:41:24

+0

'PostConstruct'方法用於初始化對象。你爲什麼要把'IOException'拋出一個初始化方法? – medopal 2012-01-05 09:41:27

+1

@Medopal:我在服務的init方法中檢查數據庫表的存在,拋出IOException – fasseg 2012-01-05 09:43:58

回答

36

是的,將它包裝在運行時異常中。優先考慮更具體的東西,如IllegalStateException

請注意,如果init方法失敗,通常應用程序不會啓動。