Tecnología

Inicio

Excepciones Java Tutorial

Una excepción se produce cuando una situación anormal (por ejemplo, un error o un problema) se presenta un método que no es capaz de manejar. Las salidas del método de "lanzar" una excepción, comunicar a la función de llamada que el método ha terminado de forma anormal, y pasando de nuevo la información sobre las condiciones de la situación. Esta información se encapsula en el objeto excepción lanzada de nuevo a la función de llamada.

Excepciones básicos

Java ofrece tres tipos básicos de excepciones: las excepciones revisadas, errores y excepciones de tiempo de ejecución.

Las excepciones comprobadas son arrojados por los problemas que se espera razonablemente que se pueden manejar, como una solicitud para un archivo que no existe. Las excepciones comprobadas deben ser capturados y, o bien a cargo de la función de llamada o arrojados a una función que llama más alta. Este requisito se conoce como el "Catch o Especificar Requisito." Todas las excepciones comprobadas se derivan de la clase Exception.

Los errores se inicia cuando se produce un error grave externo a la aplicación que no puede ser manejado razonablemente, tales como errores de memoria y de desbordamiento de pila. Todos los errores se derivan de la clase de error.

excepciones de tiempo de ejecución se inicia cuando se produce un error grave dentro de la aplicación que no puede ser manejado razonablemente, tales como argumentos ilegales y parámetros. Todas las excepciones de tiempo de ejecución se derivan de la clase RuntimeException.

Los errores y excepciones de tiempo de ejecución son dos excepciones sin marcar. excepciones sin marcar, no están sujetos a la captura o especificar requisito porque no se espera que la recuperación agraciado de este tipo de excepciones.

Las clases de excepciones, errores y RuntimeException se derivan de Throwable clase. De Throwable, estas clases heredan funciones útiles para la presentación de informes y depuración de errores. Por ejemplo, getMessage devuelve el mensaje de error legible por humanos asociada con la excepción, y printStackTrace imprime información detallada a una corriente de agua o de escritura especificado. Puede crear sus propias excepciones especializados heredando de Excepción, RuntimeException o sus subclases.

Excepciones de la especialidad

Java ofrece numerosas clases de excepciones derivadas de las clases básicas. excepciones especializados pueden ofrecer funciones adicionales para recuperar información detallada específica de la situación. Por ejemplo, Java funciones de conectividad de base de datos pueden arrojar una excepción de SQL. Esta excepción especializada tiene funciones para obtener información sobre el estado de SQL y el código de error específico del proveedor en relación con la excepción. La captura y manejo de excepciones específicas le permite acceder a una gran cantidad de información adicional no disponible si solo capturar y manejar las excepciones genéricas de la clase padre.

Manejo de excepciones: try, catch, último

Utilizar try, catch, y finalmente se hace para capturar y manejar excepciones. Coloca el código que podría lanzar una excepción en el bloque try. Proporcionar un bloque catch para controlar cada una posible excepción, con instrucciones para manejar la excepción basada en el tipo de excepción y la información ofrece la excepción. Controlar la excepción podría implicar que alerta al usuario del error, que solicitaba una entrada de usuario correcto, se recupera de forma automática el error o lanzar una excepción hasta un nivel más alto. Código en el bloque finally siempre se ejecuta cuando se sale del bloque try, si se terminó normalmente o una excepción fue capturado.

En este sencillo ejemplo, la aplicación intenta abrir un archivo y procesarla. Si se detecta una excepción, alguna información de excepción se imprime, y la ejecución continúa. Por último, la aplicación se limpia mediante el cierre de la secuencia de archivo si es necesario.

FileReader fr = null
IR
tratar {
fr = new FileReader ( "miarchivo.txt")
IR
... (Código para leer y procesar el archivo) ...
}
captura (FileNotFoundException ex) {

System.out.println(ex.getMessage())

IR
}
catch (IOException ex) {

System.out.println(ex.getMessage())

IR
}
finalmente {

if (fr != null) fr.close()

IR
}

Lanzar Excepciones

Para lanzar excepciones de una función, especifique esta utilizando la cláusula throws en la declaración de la función, proporcionando una lista de excepciones que pueden ser lanzadas. Por ejemplo:

getData void () throws IOException, FileNotFoundException {

Una excepción es lanzada mediante un comunicado "tirar". Una excepción capturada o creada puede ser lanzado. Por ejemplo:

getData void () lanza SomeOtherException, FileNotFoundException {
FileReader fr = null
IR
tratar {

fr = new FileReader(“myfile.txt”)

IR

... (code to read and process the file) ...

}
captura (FileNotFoundException ex) {

throw ex

IR
}
catch (IOException ex) {

throw new SomeOtherException(ex)

IR
}
finalmente {

if (fr != null) fr.close()

IR
}
}