Una excepción se produce cuando una situación anormal (como un error o un problema ) ocurre que un método no es capaz de manejar. El método sale por "tirar " una excepción, la comunicación con la función que llama que el método ha terminado anormalmente , y pasando de nuevo la información sobre las condiciones de la situación . Esta información se resume en el objeto de excepción lanzado de nuevo a la función de llamada. Excepciones Basic
Java ofrece tres tipos básicos de excepciones: . Excepciones controladas , errores y excepciones de tiempo de ejecución
Las excepciones comprobadas se tiran de los problemas previstos que razonablemente se pueden manejar , como una solicitud para un archivo inexistente. Las excepciones comprobadas deben ser capturados y, o bien a cargo de la función de llamada o arrojados a una función llamada superior. Este requisito se refiere como el " Capturar o Especificar requisito . " Todas las excepciones controladas se derivan de la clase de excepción .
Errores
se produce cuando un grave error externo a la aplicación se produce que no puede ser manejado razonablemente , tales como fuera de errores de desbordamiento de la memoria y la pila . Todos los errores se derivan de la clase de error .
Excepciones de tiempo de ejecución se generan cuando un grave error se produce dentro de la aplicación que no puede ser manejado razonablemente , tales como los argumentos y parámetros ilegales . Todas las excepciones de tiempo de ejecución se derivan de la clase RuntimeException .
Errores y excepciones de tiempo de ejecución son dos excepciones sin control . Excepciones no comprobadas no están sujetos al requisito Capturar o Especificar porque la recuperación elegante de este tipo de excepciones no se espera .
Clases de excepción , Error y RuntimeException se derivan de la clase Throwable . Desde Throwable , estas clases heredan funciones útiles para informar y depurar errores . Por ejemplo , getMessage devuelve el mensaje de error legible para el usuario asociado a la excepción , y printStackTrace imprime información detallada de un arroyo o escritura especificado . Usted puede crear sus propias excepciones especializados heredando de Exception, RuntimeException o sus subclases.
Especialidad Excepciones
Java ofrece numerosas clases de excepciones derivadas de las clases básicas . Excepciones especializados pueden ofrecer funciones adicionales para recuperar información específica y detallada de la situación. Por ejemplo , las funciones de conectividad de base de datos Java pueden lanzar una SQLException . Esta excepción especializada tiene funciones para recuperar la 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 el manejo de excepciones específicas que le permite acceder a una gran cantidad de información adicional no disponible si sólo capturar y manejar las excepciones de la clase padre Generico Online
Manejo de excepciones : . Try, Catch , Finalmente
Utilizar try, catch , y finally para capturar y manejar excepciones. Coloca el código que podría generar una excepción en el bloque try. Proporcionar un bloque catch para manejar cada posible excepción, con las instrucciones para manejar la excepción basada en el tipo de excepción y la información de la excepción proporciona . Manipulación de la excepción podría implicar que alerta al usuario del error , solicitando la entrada del usuario correcta , la recuperación automática del error o lanzar una excepción hasta un nivel más alto . El código del bloque finally siempre se ejecuta cuando se sale del bloque try , si sale 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 limpia cerrando el flujo de archivos si es necesario
FileReader fr = null; . Try { fr = new FileReader ( " miarchivo.txt "); ... ( código para leer y procesar el archivo ) ... } catch ( FileNotFoundException ex) { System.out.println ( ex.getMessage ()); } catch ( IOException ex) { System.out.println ( ex.getMessage () ) ;} finally { if ( fr = null) fr.close () ;}
excepciones
Para lanzar excepciones de una función , especifique el uso de la lanza cláusula de la declaración de la función , que proporciona una lista de excepciones que pueden lanzarse . Por ejemplo :
void getData ( ) throws IOException FileNotFoundException {
Se produce una excepción mediante una instrucción " tiro " . A excepción detectada o creada puede ser lanzado . Por ejemplo :
void getData ( ) throws SomeOtherException , FileNotFoundException { FileReader fr = null; try { fr = new FileReader ( " miarchivo.txt "); ... ( código para leer y procesar el archivo ) ... } catch ( FileNotFoundException ex ) {throw ex ; } catch ( IOException ex) { throw new SomeOtherException (ex ) ;} finally { if (! fr = null) fr.close ( ) ;} }