todas - tipos de excepciones en java netbeans
@PostConstruct y excepciones controladas (2)
En el documento @PostConstruct dice sobre los métodos anotados:
"El método NO DEBE arrojar una excepción marcada".
¿Cómo podría tratarse, por ejemplo, una IOException que puede arrojarse en dicho 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 los objetos que obtuvieron sus dependencias?
Sí, envuélvalo 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á.
Utilice una excepción suavizada como tal, en efecto envolviendo en RuntimeException: https://repl.it/@djangofan/SoftenExceptionjava
private static RuntimeException softenException(Exception e) {
return checkednessRemover(e);
}
private static <T extends Exception> T checkednessRemover(Exception e) throws T {
throw (T) e;
}
Entonces el uso es como:
} catch (IOException e) {
throw softenException(e);
//throw e; // this would require declaring ''throws IOException''
}