1. La pregunta
En Java, los métodos pueden generar excepciones. ¿Los constructores también pueden lanzar excepciones? La respuesta es sí.
2. La razón y algunos antecedentes necesarios
Un constructor es solo un método especial. En esta perspectiva, seguramente puede hacer lo que pueden hacer los métodos regulares.
Es posible que haya algunos objetos creados y asignados a campos estáticos antes de que se complete el método constructor. En este caso, el objeto que se debe crear aún no se crea. Así que debes tener cuidado con la consistencia.
Aquí hay un método constructor de ejemplo que lanza una excepción.
class FileReader{ public FileInputStream fis = null; public FileReader() throws IOException{ File dir = new File(".");//get current directory File fin = new File(dir.getCanonicalPath() + File.separator + "not-existing-file.txt"); fis = new FileInputStream(fin); } } |
Si desea conocer las mejores prácticas del manejo de excepciones de Java, le recomiendo esta publicación.