última actualización el 29 de agosto de 2020 por Scientech Easy
en este tutorial, aprenderemos la jerarquía de excepciones en Java con diagramas y descripciones breves.
en el tutorial anterior, hemos explicado los puntos básicos del manejo de excepciones en Java, exception handler con ejemplos en tiempo real. Le recomendaré que primero se familiarice con los puntos básicos.,
Types of Exceptions in Java
Basically, there are two types of exceptions in java API. They are:
1. Predefined Exceptions (Built-in-Exceptions)
2. Custom Exceptions
Predefined Exceptions:
Predefined exceptions are those exceptions that are already defined by Java system. These exceptions are also called built-in-exceptions.
Java API supports exception handling by providing the number of predefined exceptions. These predefined exceptions are represented by classes in java.,
cuando se produce una excepción predefinida, JVM (Java runtime system) crea un objeto de clase de excepción predefinida. Todas las excepciones se derivan de java.lang.Clase lanzable pero no todas las clases de excepción están definidas en el mismo paquete.
todas las excepciones predefinidas soportadas por java se organizan como subclases en una jerarquía bajo la clase lanzable.
la clase lanzable es la raíz de la jerarquía de excepciones y es una subclase inmediata de la clase objeto. Echemos un vistazo a la jerarquía de excepciones de java, como se muestra en la siguiente figura.
1., Clase lanzable: como se muestra en la figura anterior, la clase lanzable que se deriva de la clase de objeto, es una jerarquía de excepción superior de la cual todas las clases de excepción se derivan directa o indirectamente. Es la raíz de todas las clases de excepción. Está presente en java.paquete lang.
Arrojadiza clase es la superclase de todas las excepciones en java. Esta clase tiene dos subclases: Error y Excepción. Los errores o excepciones que ocurren en programas java son objetos de estas clases. Usando la clase lanzable, también puedes crear tus propias excepciones personalizadas.
2., Error: la clase de Error es la subclase de la clase lanzable y una superclase de todas las clases de error de tiempo de ejecución. Termina el programa si hay problemas relacionados con un sistema o recursos (JVM).
un error generalmente representa un problema o situación inusual de la que es difícil recuperarse. No ocurre por errores de programador. Generalmente ocurre si el sistema no funciona correctamente o los recursos no se asignan correctamente.
VirtualMachineError, StackOverFlowError, AssertionError, LinkageError, OutOfMmeoryError, etc son ejemplos de error., Aprenderemos más detalles en otros tutoriales.
3. Exception: está representada por una clase Exception que representa los errores causados por el programa y por factores externos. La clase de excepción es una subclase de clase lanzable y una superclase de todas las clases de excepción. Todas las clases de excepción se derivan directa o indirectamente de la clase de excepción. Generalmente se originan dentro de la aplicación.,
la clase exception proporciona dos constructores:
- public Exception() (constructor predeterminado)
- public Exception(String message) (toma una cadena de mensaje como argumento)
cada una de las clases exception proporciona dos constructores: uno sin argumento y otro con un argumento de tipo String. Exception class no proporciona su propio método. Hereda todos los métodos proporcionados por la clase lanzable.,
jerarquía de clases de excepción en Java
la jerarquía de clases de excepción en Java se ha mostrado en la siguiente figura que es muy importante para un propósito de entrevista.
excepciones personalizadas:
las excepciones personalizadas son aquellas que son creadas por usuarios o programadores de acuerdo a sus propias necesidades. Las excepciones personalizadas también se denominan excepciones definidas por el usuario que se crean extendiendo la clase exception.,
Por lo tanto, Java proporciona la libertad a los programadores para lanzar y manejar excepciones mientras se ocupan de los requisitos funcionales de los problemas que están resolviendo. Discutiremos con más detalle sobre las excepciones personalizadas en otros tutoriales.
veamos la breve descripción de cada subclase de la clase Exception.
Clase RuntimeException (excepciones no marcadas)
la clase RuntimeException es una subclase de la clase Exception. Es lanzado por JVM o programáticamente cuando una operación aritmética realizada en el programa es incorrecta o se produce un defecto/error en el código del programa.,
RuntimeException y todas sus subclases de excepción no son verificadas por el compilador Java porque ocurren durante el tiempo de ejecución de un programa. Es por eso que estas excepciones también se llaman excepciones sin marcar.
la clase RuntimeException consiste en muchas otras subclases de excepción que se utilizan para manejar un tipo específico de excepción. Aparte de estas subclases de excepción de la clase RuntimeException que se muestran en la figura anterior, también hay otras subclases de la clase RuntimeException que no se han mostrado en el diagrama de estructura jerárquica para evitar la complejidad.,
veamos una breve descripción de ellos.
1. ArithmeticException: esta excepción se produce cuando se producen problemas aritméticos, como un número dividido por cero. Es decir, es causada por un error matemático.
2. ClassCastException: la ClassCastException es una excepción de tiempo de ejecución que es lanzada por JVM cuando intentamos encasillar no válido en el programa. Es decir, se lanza cuando lanzamos un objeto a una subclase de la cual un objeto no es una instancia.
3., IllegalArgumentException: esta excepción de tiempo de ejecución es lanzada por programación cuando se pasa un argumento illegal o apropiado para llamar a un método. Esta clase de excepción tiene otras dos subclases:
- NumberFormatException
- IllegalThreadStateException
NumericFormatException: NumberFormatException es lanzado por programación cuando intentamos convertir una cadena en el tipo numérico y el proceso de conversión ilegal falla. Es decir, se produce debido a la conversión ilegal de una cadena a un formato numérico.,
IllegalThreadStateException: la excepción IllegalThreadStateException es una excepción de tiempo de ejecución que es lanzada por programación cuando intentamos realizar cualquier operación en un subproceso pero es incompatible con el estado actual del subproceso.
4. IndexOutOfBoundsException: esta clase de excepción es lanzada por JVM cuando una matriz o cadena sale del índice especificado., It has two further subclasses:
- ArrayIndexOutOfBoundsException
- StringIndexOutOfBoundsException
ArrayIndexOutOfBoundsException: ArrayIndexOutOfBoundsException exception is thrown when an array element is accessed out of the index.
StringIndexOutOfBoundsException: StringIndexOutOfBoundsException exception is thrown when a String or StringBuffer element is accessed out of the index.
5., NullPointerException: NullPointerException es una excepción de tiempo de ejecución que es lanzada por JVM cuando intentamos usar null en lugar de un objeto. Es decir, se lanza cuando la referencia es nula.
6. ArrayStoreException: esta excepción ocurre cuando intentamos almacenar cualquier valor en un array que no es de tipo array. Por ejemplo, supongamos que una matriz es de tipo entero, pero estamos tratando de almacenar un valor de un elemento de otro tipo.
7., IllegalStateException: la excepción IllegalStateException es lanzada por programación cuando el entorno de tiempo de ejecución no está en un estado apropiado para llamar a ningún método.
8. IllegalMonitorStateException: esta excepción se produce cuando un subproceso no tiene derecho a supervisar un objeto e intenta acceder a los métodos wait(), notify () y notifyAll() del objeto.
9. NegativeArraySizeException: la excepción NegativeArraySizeException se lanza cuando se crea una matriz con un tamaño negativo.,
lista de excepciones Verificadas en Java
ahora, hemos enumerado las excepciones verificadas en una breve descripción.
1. ClassNotFoundException: la ClassNotFoundException es un tipo de excepción marcada que se lanza cuando intentamos usar una clase que no existe.
Las excepciones Verificadas son aquellas excepciones que son verificadas por el propio compilador de Java.
2. FileNotFoundException: la excepción FileNotFoundException es una excepción marcada que se lanza cuando intentamos acceder a un archivo no existente.
3., Interrumpedexception: Interrumpedexception es una excepción marcada que se lanza cuando un hilo está en estado de espera o en reposo y otro hilo intenta interrumpirlo.
4. InstantiationException: esta excepción también es una excepción marcada que se lanza cuando intentamos crear un objeto de clase abstracta o interfaz. Es decir, InstantiationException excepción se produce cuando una clase abstracta o de la interfaz se crea una instancia.
5., IllegalAccessException: la excepción IllegalAccessException es una excepción marcada y se lanza cuando se llama a un método en otro método o clase, pero el método o clase que llama no tiene permiso para acceder a ese método.
6. CloneNotSupportedException: esta excepción marcada se lanza cuando intentamos clonar un objeto sin implementar la interfaz cloneable.
7. NoSuchFieldException: esta es una excepción marcada que se lanza cuando se usa una variable desconocida en un programa.
8., NoSuchMethodException: esta excepción marcada se lanza cuando se usa el método undefined en un programa.
espero que este tutorial haya cubierto casi todos los puntos básicos relacionados con la jerarquía de excepciones en java. Espero que hayas entendido los puntos básicos de la clase lanzable y sus subclases: excepción y Error.
puntos clave a recordar:
- Dos tipos de excepciones en Java: excepciones predefinidas y personalizadas.
- La clase raíz para todas las excepciones en la jerarquía de clases de excepción es java.lang.Lanzable.,
- Exception classes are mainly divided into three types: system errors, exceptions, and runtime exceptions.
- System errors are represented by Error class and thrown by JVM.
- Exceptions are represented by Exception classes that describe errors in your program.
Thanks for reading!!!
Next ⇒ Checked and Unchecked Exception in Java⇐ PrevNext ⇒