Tecnología

Inicio

Las excepciones definidas por el usuario en Java

El lenguaje Java está diseñado para controlar los errores y otros eventos inesperados que utilizan un concepto excepción. Cuando se produce un error, se genera un objeto de excepción y se pasa (o lanzado) la pila de llamadas hasta que encuentra un método diseñado para manejar (o captura) que es una excepción. Java viene con docenas de objetos de excepción, pero los programadores también puede crear su propia cuenta.

La definición de una clase de excepción personalizada

excepciones personalizadas se definen de la misma forma exacta como cualquier otra clase de Java. La única regla importante es que una excepción debe extender la clase de excepción en la biblioteca java.lang. Esto se hace de la misma manera que cualquier otra clase extiende otro. Un ejemplo de una excepción definida por el usuario sería:

MiExcepción clase extiende Excepción {

}

Puede añadir sus propios métodos y constructores a su clase de excepción con el fin de personalizar a sus propósitos, pero sólo mediante la ampliación de la clase base obtendrá los métodos y constructores de excepción estándar, incluyendo la capacidad de definir mensajes de error.

Lanzar una excepción personalizada

Para utilizar su excepción personalizada, hay que tirar en algún lugar en el programa, lo mismo que cualquier otra excepción. Por ejemplo, el siguiente ejemplo trivial ilustra cómo lanzar una excepción para evitar que un método de dividir por cero:

división público doble (doble dividendo, divisor doble) lanza MiExcepción {

if (divisor == 0) throw new MyException("Division by zero attempted!");

volver dividendo / divisor;

}

El problema se comprueba para ver si el divisor es igual a cero. Si es así, entonces un nuevo objeto MiExcepción se crea y se lanza con un mensaje de error apropiado. Cualquiera que sea parte del programa que se llama la función de "brecha" sería entonces responsable de decidir qué hacer con la excepción.

¿Por qué utilizar las excepciones?

La comprobación de errores es una parte fundamental de cualquier programa. Incluso si el trabajo del programador es perfecto, la entrada del usuario, el sistema de archivos local e Internet es rara vez, o nunca, perfecta, por lo que los programas deben estar preparados para hacer frente a los problemas. A menudo, sin embargo, la parte del código que se encuentra el problema no es la parte del código más adecuado para tratar con el problema. Una función que divide un párrafo de texto en palabras debería, idealmente, no tiene que preocuparse acerca de si un párrafo vacío es un error que debe cerrar el programa, un evento extraño que se debería informar al usuario, o irrelevante. Las excepciones permiten que informe el problema a otras partes del programa que se adapten mejor a la corrección de la misma.

¿Por qué excepciones de uso particulares?

Java viene con docenas de clases de excepciones predefinidas, sin embargo, a veces esto ayuda a tener un conjunto de excepciones que se ajusten mejor el problema en cuestión, por lo que el programa puede reaccionar más fácilmente a ellos. Por ejemplo, en lugar de "InvalidArugmentException," genérico de Java por parte del código responsable de recuperarse de errores puede necesitar saber más detalles sobre el problema. Esto podría hacerse dividiendo la excepción en personalizado "UnexpectedNullArgumentException" y "OutOfRangeException."