23.02.2017 Views

Java

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Java</strong> 157<br />

Excepciones chequeadas<br />

Las excepciones que pertenecen a la jerarquía de Exception, salvo<br />

las que son RuntimeException, son conocidas como excepciones<br />

chequeadas. Son chequeadas porque el compilador <strong>Java</strong> fuerza a que<br />

se las trate específicamente. Cuando un método quiere arrojar una<br />

excepción de este tipo, debe declararlo en la firma del método. Para<br />

esto se utiliza la palabra clave denominada throws seguida de las clases<br />

de las excepciones que se van a lanzar separadas por coma.<br />

public Usuario buscarUsuarioCon(Nombre nombre) throws<br />

UsuarioNoExistenteException {<br />

…<br />

throw new UsuarioNoExistenteException(nombre);<br />

…<br />

}<br />

public void guardar(Object algo) throws ObjectoNoGuardableException,<br />

ErrorAlGuardarException {<br />

…<br />

}<br />

El compilador nos alerta si no declaramos las excepciones en la firma<br />

del método. Otra opción es atrapar la excepción y tratarla.<br />

Estas excepciones representan situaciones de errores esperables por<br />

la aplicación y deberían ser recuperables. Por recuperable entendemos<br />

que la aplicación puede tomar acciones para evitar el error en el futuro.<br />

Un ejemplo es si nuestra aplicación quiere leer un archivo, le pregunta<br />

Catchs vacíos<br />

Cuando estamos tratando con una excepción chequeada y no queremos arrojarla, debemos tratarla<br />

adecuadamente. Adecuadamente significa que debemos hacer algo con ella, no simplemente ignorarla.<br />

Ignorar una excepción significa que su código manejador dentro de la estructura catch esté vacío. En<br />

general, debemos tratar de evitar fuertemente este tipo de código.<br />

www.FreeLibros.me<br />

www.redusers.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!