post icon

Propagar la excepción con Java

Normalmente cuando trajamos con la orientación a objetos manejamos muchas clases unas que llaman a otras, o que se heredan, muchos programadores cometen el pecado de tratar las excepciones en las clases mas “bajas“, siendo bastante mala práctica, ¿por qué lo es? simple, que pasaría si quisiéramos personalizar el mensaje de la interfaz, o tratarla de otro modo, o menos común pero no querer mostrar el mensaje de error, no podríamos hacer esto si trabajásemos así. Lo correcto es que las clases que no estarán directamente ligadas a la interfaz traten el error en el único sentido de controlarlas para evitar la inestabilidad del programa, pero que a su vez todos los objetos que le invoque puedan también enterarse que ocurrió una excepción en algún punto, por lo tanto necesitaremos expandir esa excepción, de clase en clase hasta llegar a la capa final de interfaz.

Lograr esto es demasiado sencillo en java, para ello tenemos la palabra reservada que se encarga de lanzar excepciones, ya ya sean manuales o del sistema/aplicación. Probablemente todos los programadores de java conocen el comando, pero no todos le dan el uso o enfoque correcto, en el siguiente ejemplo se ve de un modo muy claro como hacerlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* aqui puede ir cualquier visibilidad retornar o recibir parámetros, y
 * la clase de excepcion a expandir, el más genérico de todos es Exception,
 * por dejar otro ejemplo puede ser SQLException, IOException, etc
 * siempre y cuando hagamos los imports correspondietes
*/
public void algunMetodo() throws Exception {
	try{
		// un monton de codigo aqui que se debe intentar ejecutar
	} catch (Exception e) {
		/* expandir la excepcion, esto hara que todo
		 * objeto que lo invoque se entere de la excepcion
		 * y pueda controlar el flujo de error correctamente
		 * esto en vez de manejar directamente aqui
                 * el flujo de proceso en caso de error */
		throw new Exception(e);
	}
}
27 diciembre 2009

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder