Categorías
Exceptions

¿Puede el constructor lanzar excepciones en Java?

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.

  ¿Debería colocarse .close () en el bloque finalmente o no?

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *