2012-01-05 11 views
26

En el documento @PostConstruct que dice acerca de los métodos anotados:@PostConstruct y excepciones comprobadas

"El método no debe lanzar una excepción comprobada".

¿Cómo se podría lidiar con, por ejemplo,? una IOException que se puede lanzar en tal método? Simplemente envuélvalo en una RuntimeException y deje que el usuario se preocupe por el estado inicial defectuoso del objeto. ¿O es @PostConstruct el lugar equivocado para validar e inicializar objetos que obtuvieron sus dependencias?

+0

Interesante, no me había dado cuenta. Parece una restricción extraña, dado que el método se llama reflexivamente. – skaffman

+0

El método 'PostConstruct' es para inicializar objetos. ¿Por qué pondría algo que arroje 'IOException' en un método de inicialización? – medopal

+1

@Medopal: Estoy comprobando la existencia de tablas DB en el método init de un servicio, que arroja IOException – fasseg

Respuesta

36

Sí, envuélvala en una excepción de tiempo de ejecución. Preferiblemente algo más concreto como IllegalStateException.

Tenga en cuenta que si el método init falla, normalmente la aplicación no se iniciará.

Cuestiones relacionadas