¿Qué es una Excepción?
una excepción es un evento no deseado o inesperado, que ocurre durante la ejecución de un programa, es decir, en tiempo de ejecución, que interrumpe el flujo normal de las instrucciones del programa.
Error vs Exception
Error: un Error indica un problema grave que una aplicación razonable no debe tratar de detectar.
excepción: la excepción indica las condiciones que una aplicación razonable podría intentar detectar.,
jerarquía de excepciones
Todos los tipos de excepciones y errores son subclases de Class Throwable, que es la clase base de la jerarquía.Una rama está encabezada por excepción. Esta clase se usa para condiciones excepcionales que los programas de usuario deberían capturar. NullPointerException es un ejemplo de tal excepción.Otra rama, Error, es usada por el Java run-time system (JVM) para indicar errores relacionados con el propio entorno de tiempo de ejecución(JRE). StackOverflowError es un ejemplo de tal error.,
facturado vs desactivada excepción, consulte el Facturado vs Desactivada Excepciones
¿Cómo JVM manejar una Excepción?
manejo predeterminado de excepciones: siempre que se encuentre dentro de un método, si se ha producido una excepción, el método crea un objeto conocido como objeto de excepción y lo entrega al sistema de tiempo de ejecución(JVM). El objeto exception contiene el nombre y la descripción de la excepción, y el estado actual del programa donde se ha producido la excepción., Crear el objeto Exception y manejarlo en el sistema en tiempo de ejecución se denomina lanzar una excepción.Podría haber una lista de los métodos que se habían llamado para llegar al método donde se produjo la excepción. Esta lista ordenada de los métodos se llama pila de llamadas.Ahora sucederá el siguiente procedimiento.
- El sistema en tiempo de ejecución busca en la pila de llamadas el método que contiene el bloque de código que puede manejar la excepción ocurrida. El bloque del código se llama controlador de excepciones.,
- El sistema en tiempo de ejecución comienza a buscar desde el método en el que se produjo la excepción, continúa a través de la pila de llamadas en el orden inverso en el que se llamaron los métodos.
- Si encuentra el manejador apropiado entonces le pasa la excepción ocurrida. Manejador apropiado significa que el tipo del objeto de excepción lanzado coincide con el tipo del objeto de excepción que puede manejar.,
- si el sistema en tiempo de ejecución busca todos los métodos en la pila de llamadas y no pudo encontrar el controlador apropiado, entonces el sistema en tiempo de ejecución transfiere el objeto de excepción al controlador de excepciones predeterminado, que es parte del sistema en tiempo de ejecución. Este controlador imprime la información de excepción en el siguiente formato y termina el programa de forma anormal.
Exception in thread "xxx" Name of Exception : Description... ...... .. // Call Stack
Consulte el siguiente diagrama para entender el flujo de la pila de llamadas.,>
{
System.out.println(ex.getMessage());
}
}
}
Output :
/ by zero.
How Programmer handles an exception?,
manejo de excepciones personalizado : el manejo de excepciones de Java se administra a través de cinco palabras clave: try, catch, throw, throws y finalmente. Brevemente, así es como funcionan. Las declaraciones de programa que cree que pueden generar excepciones están contenidas dentro de un bloque try. Si se produce una excepción dentro del bloque try, se lanza. Su código puede capturar esta excepción (usando catch block) y manejarla de alguna manera racional. Las excepciones generadas por el sistema son lanzadas automáticamente por el sistema de tiempo de ejecución de Java. Para lanzar manualmente una excepción, utilice la palabra clave lanzar., Cualquier excepción que sea expulsada de un método debe ser especificada como tal por una cláusula throws. Cualquier código que absolutamente debe ser ejecutado después de que se complete un bloque try se coloca en un bloque finally.
artículo detallado: control de flujo en try catch finalmente bloquear
necesidad de la cláusula try-catch (manejo personalizado de excepciones)
considere el siguiente programa java.
Resultado :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at GFG.main(GFG.java:9)
Explicación : En el ejemplo anterior de una matriz se define con el tamaño de decir, solo puede acceder a los elementos del índice 0 al 3. Pero usted tratando de acceder a los elementos en el índice 4 (por error) es por eso que está lanzando un exception.In en este caso, JVM termina el programa de forma anormal. El sistema de declaraciones.fuera.println («Hola, quiero ejecutar»); nunca se ejecutará. Para ejecutarlo, debemos manejar la excepción usando try-catch. Por lo tanto, para continuar el flujo normal del programa, necesitamos la cláusula try-catch.,
Cómo usar la cláusula try-catch
puntos para recordar:
- en un método, puede haber más de una sentencia que pueda lanzar una excepción, así que coloque todas estas sentencias dentro de su propio bloque try y proporcione un manejador de excepciones separado dentro de su propio bloque catch para cada una de ellas.
- si se produce una excepción dentro del bloque try, esa excepción es manejada por el controlador de excepciones asociado al mismo. Para asociar el manejador de excepciones, debemos poner catch block después de él. Puede haber más de un manejador de excepciones., Cada bloque catch es un manejador de excepciones que maneja la excepción del tipo indicado por su argumento. El argumento ExceptionType declara el tipo de la excepción que puede manejar y debe ser el nombre de la clase que hereda de la clase lanzable.
- para cada bloque try puede haber cero o más bloques catch, pero solo un bloque finally.
- El último bloque es optional.It siempre se ejecuta tanto si se ha producido una excepción en el bloque try como si no . Si se produce una excepción, se ejecutará después de intentar y atrapar bloques., Y si la excepción no ocurre, entonces se ejecutará después del bloque try. El bloque finally en java se utiliza para poner códigos importantes, como limpiar el código, por ejemplo, cerrar el archivo o cerrar la conexión.
resumen
- Tipos de excepciones en Java
- Checked vs Unchecked Exceptions
- Throw-lanza en Java
referencia:
Este artículo ha sido contribuido por Nitsdheerendra y Gaurav Miglani. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contribute.geeksforgeeks.,org o envíe su artículo a [email protected]. vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Por favor, escriba comentarios si encuentra algo incorrecto, o si desea compartir más información sobre el tema discutido anteriormente.
Attention reader! No dejes de aprender ahora. Obtenga todos los conceptos importantes de Java Foundation y Collections con los fundamentos de Java y el curso de Java Collections a un precio amigable para los estudiantes y prepárese para la industria.,