Tecnología

Inicio

Cómo crear clases de excepciones en Java

El lenguaje de programación Java tiene un enfoque basado-excepciones a la manipulación de la detección de errores y gastos de envío en el código. En lugar de crear un complejo sistema de instrucciones anidadas si-si no para tratar de atrapar todos los errores posibles, todo error captura puede ser organizada en una serie de declaraciones \ "try-catch \" al final de una función. Esto permite el control de errores para salir del camino de la corriente real del programa y conduce a más legible, el código más fácil de mantener.

Instrucciones

1 Elija una clase padre. Cualquier subclase de java.lang.Exception se puede utilizar como la matriz para una nueva clase de excepción. Sin embargo, para este ejemplo, vamos a usar la clase básica de excepciones como padre. Excepción nos da todas las necesidades básicas de una excepción: es throwable, se puede imprimir un seguimiento de la pila, y permite que un mensaje sea recuperada sobre la naturaleza de la excepción.

2 Crear una subclase que extiende esa clase padre. Esta es la misma que la creación de cualquier otra subclase en Java. Para una buena legibilidad del código, que es estándar para terminar siempre el nombre de la clase con la palabra "excepción". Para este ejemplo, usted construirá una excepción para el manejo de mala entrada del usuario, llamada, simplemente lo suficiente, BadUserInputException.

BadUserInputException clase pública se extiende Excepción {
}

Este código solo en realidad le da todo lo que necesita empezando inmediatamente lanzar y atrapar esta excepción, y en muchos casos, esto va a ser todo lo que necesita.

3 Añadir funciones únicas para su excepción. Es posible que desee que su clase de excepción que tiene algunas características únicas por encima y más allá de la capacidad de ser lanzado y atrapado con una impresión de seguimiento de la pila hacia fuera. Por lo tanto, se le añade alguna nueva información a su clase de excepción.

BadUserInputException clase pública se extiende Excepción {
inputString private String
IR

getInputString pública () {return (inputString); }

BadUserInputException público (entrada String) {
súper()
IR
inputString = entrada
IR
}
IR
}

Ahora, su excepción tendrá una función extra, getInputString (), que se puede llamar en cualquier momento se lanza su excepción a obtener una copia de la entrada del usuario mal en cuestión para ser impreso a un registro de errores o son examinados por el programa para determinar qué hacer a continuación.

4 Añadir una instrucción throw a las funciones que pueden causar la excepción que se produzca. Una excepción es inútil a menos que se produce por alguna función. Una sentencia throw pasa esencialmente un error en la pila para permitir que una parte mayor nivel del programa para determinar qué se debe hacer con él. Este BadUserException será lanzado por una función getUserInput (), muy apropiadamente:

/ *


Javadoc para getUserInput. ¿Quieres mencionar aquí
que esta función emite un BadUserInputException
para que sepa para coger más tarde.
@throws BadUserInputException Si se produce una entrada incorrecta.
@devuelve de entrada del usuario si se lanza una excepción.
* /
Cadena getUserInput pública () {lanza BadUserInputException
BufferedReader en = new BufferedReader (nueva InputStreamReader (System.in))
IR
in.readLine entrada de cadena = ()
IR
if (! validInput (entrada) throw BadUserInputException (entrada)
IR
entrada de retorno de los demás
IR
}

5 Añadir código para detectar la excepción cuando se utilizan funciones que lo utilizan. Esto permitirá que su programa para reaccionar a errores de una manera controlada limpiamente. El código para hacer lo que se verá como este sencillo ejemplo:

gameLoop public void () {
tratar {
printMenu ()
IR
elección String = getUserInput ()
IR
si (choice.equals ( "Q")) Salir ()
IR
bien continuar ()
IR
} Catch (BadUserIputException e) {
System.out.println ( "ERROR:" + e.getInputString () + ": no es una entrada válida.)
IR
}
}

Consejos y advertencias

  • Usted puede notar que otra clase que deriva de la clase Throwable es un error. Si bien es posible crear sus propias subclases de error, esto no es recomendable ya que el error está destinado a representar situaciones graves que una aplicación típica no debe tratar de atrapar.