Una excepción de Java es un objeto que describe una situación de excepción (es decir, un error) que ocurre en un segmento de código. Cuando se produce una excepción, se crea y se lanza un objeto que representa la excepción en el método que causa el error. Este método puede optar por manejar la excepción en sí o pasarla. En ambos casos, la excepción se atrapa y procesa. La excepción puede ser generada por el sistema de tiempo de ejecución Java, o por su código manual. La excepción presentada por Java está relacionada con errores básicos que violan las especificaciones del idioma o exceden las limitaciones del entorno de ejecución de Java. Las excepciones generadas por la codificación manual se utilizan básicamente para informar las condiciones de error en el llamado del método.
El manejo de excepciones de Java está controlado por 5 palabras clave: intente, atrapar, lanzar, lanzar y finalmente. Así es como funcionan. El programa declara que el monitoreo de excepciones que desea se incluye en un bloque de TRY. Si se produce una excepción en el bloque de prueba, se lanza. Su código puede atrapar esta excepción (con captura) y manejarlo de alguna manera razonable. La excepción generada por el sistema es lanzada automáticamente por el sistema de tiempo de ejecución Java. Lanza manualmente una excepción, usando el lanzamiento de palabras clave. Cualquier excepción al método lanzado debe definirse mediante la cláusula de lanzamiento. Cualquier código que se ejecute absolutamente antes de que el método regrese se coloca en el bloque Finalmente.
Aquí está la forma habitual de un bloque de manejo de excepciones:
intente {// bloque de código para monitorear los errores} capt (excepcionType1 exob) {// manejador de excepciones para excepcionType1} capt (excepcionType2 exob) {// excepto el controlador de iones para excepcionType2} // ... finalmente {// bloque de código que se ejecutará antes de que termine el bloque de try}
Aquí, ExceptionType es el tipo donde ocurrió la excepción.
Todos los tipos de excepciones son subclases de la clase incorporada que se pueden lanzar. Por lo tanto, lanzarse está en el nivel superior de la jerarquía de clase de excepción. Inmediatamente después de lanzarse hay dos subclases que dividen la excepción en dos ramas diferentes. Una rama es una excepción.
Esta clase se utiliza para excepciones que pueden ser atrapadas por el programa de usuario. También es una clase que puede usar para crear su propia subclase de tipo de excepción del usuario. Hay una importante subclase RuntimeException en la rama de excepción. Este tipo de excepción se define automáticamente para el programa que escribe e incluye errores como dividir por cero e indexación de matriz ilegal.
Otro tipo de rama es el nivel superior con un error, que define las excepciones que no están destinadas a ser atrapadas por programas en entornos normales. Se utiliza una excepción del error de tipo en el sistema de tiempo de ejecución Java para mostrar errores relacionados con el sistema de tiempo de ejecución. Stack Overflow es un ejemplo de este error. Este capítulo no discutirá el manejo de excepciones para los tipos de errores, ya que a menudo son errores catastróficos y fatales que no son algo que su programa pueda controlar.