2012-01-05 48 views
26

Trong @PostConstruct doc nó nói về các phương pháp chú thích:@PostConstruct & Kiểm tra ngoại lệ

"Phương pháp này PHẢI KHÔNG ném một ngoại lệ kiểm tra."

Làm thế nào để xử lý một ví dụ một IOException có thể được ném vào một phương thức như vậy? Chỉ cần bọc nó trong một RuntimeException và để cho người dùng lo lắng về trạng thái ban đầu bị lỗi của đối tượng? Hoặc là @PostConstruct các địa điểm sai để xác nhận và khởi tạo các đối tượng được tiêm phụ thuộc của họ?

+0

Thú vị, tôi đã không nhận thấy điều đó. Có vẻ như một hạn chế kỳ lạ, cho rằng phương pháp được gọi là phản ánh. – skaffman

+0

Phương thức 'PostConstruct' là để khởi tạo các đối tượng. Tại sao bạn sẽ đặt một cái gì đó mà ném 'IOException' trong một phương thức khởi tạo? – medopal

+1

@Medopal: Tôi đang kiểm tra sự tồn tại của các bảng DB trong phương thức init của một dịch vụ, trong đó ném IOException – fasseg

Trả lời

36

Có, hãy bọc trong ngoại lệ thời gian chạy. Ưu tiên một thứ gì đó cụ thể hơn như IllegalStateException.

Lưu ý rằng nếu phương pháp init không thành công, thông thường ứng dụng sẽ không khởi động.

Các vấn đề liên quan