En Java, todas las excepciones tienen un antepasado común, lanzable (lanzable). Lanzable especifica la comunidad de cualquier problema que pueda transmitirse a través de aplicaciones Java en el código mediante mecanismos de propagación de excepciones.
Throwable tiene dos subclases importantes: excepción y error. Ambas son subclases importantes para el manejo de excepciones Java, y cada una contiene una gran cantidad de subclases.
①. Exception es un posible problema predecible y recuperable en la aplicación. En general, la mayoría de las anormalidades indican problemas moderados a leves. Las excepciones generalmente se generan en entornos específicos y generalmente ocurren en métodos y operaciones específicos del código. En la clase EchoInput, puede ocurrir una IOException al intentar llamar al método de línea de lectura.
La clase de excepción tiene una subclase importante, RuntimeException. La clase RuntimeException y sus subclases representan un error planteado por las "operaciones JVM comunes". Por ejemplo, si intenta usar una referencia de objeto nulo, cero divisor o matriz fuera de los límites, una excepción de tiempo de ejecución (NullPointerException, ArithmeticException) y ArrayIndexOutofBoundException se elevan respectivamente.
②.Error indica un problema grave en la ejecución de la aplicación. La mayoría de los errores no están relacionados con las acciones realizadas por el escritor de código, sino que representan problemas con la JVM (Java Virtual Machine) cuando se ejecuta el código. Por ejemplo, cuando el JVM ya no tiene los recursos de memoria necesarios para continuar la operación, aparecerá un OutOfMemoryError.
La división entre verificar las excepciones y no verificar las excepciones
Las excepciones en Java se dividen en dos categorías:
1. Excepción verificada (excepción no rune)
2. Excepción de Banchecked (excepción de tiempo de ejecución)
Excepción de tiempo de ejecución
La clase RuntimeException es una subclase de la clase de excepción. Se llama una excepción de tiempo de ejecución. Todas las excepciones de tiempo de ejecución en Java se heredarán directa o indirectamente desde la clase RuntimeException.
Cualquier excepción en Java que herede de la excepción pero no de RuntimeException son excepciones que no son de runtime.
Un intento puede ser seguido por múltiples capturas, pero no importa cuántos, como máximo, se ejecutará un bloque de captura.
Para las excepciones que no son de rune, deben procesarse, de lo contrario no se pueden compilar.
Hay dos formas de lidiar con eso:
1. Use el intento..Catch ... Finalmente para capturar;
2. Escriba un tipo de excepción de lanza después de la declaración del método que genera la excepción, como la excepción de lanzamiento, arroja la excepción a la capa exterior.
Para las excepciones de tiempo de ejecución, se pueden procesar o no. Se recomienda no manejar las excepciones de tiempo de ejecución.
Extensión: la diferencia entre error y excepción (error vs excepción)
1) .Java.Lang.Error: una subclase de lanzamiento, utilizada para marcar errores críticos. Una aplicación razonable no debe ir a los errores de prueba/captura. La mayoría de los errores son anormales y no deben suceder en absoluto.
java.lang.Exception: una subclase de lanzamiento, utilizada para indicar un programa razonable para atrapar. Es decir, es solo un programa que ejecuta la condición, no un error grave, y se alienta a los programas de usuarios a atraparlo.
2). Error y RuntimeException y sus subclases son excepciones sin control, mientras que todas las demás clases de excepción son excepciones verificadas.
Excepciones verificadas: generalmente se arroja desde un programa recuperable y es mejor recuperarse de tales excepciones utilizando el programa. Por ejemplo, FileNotFoundException, ParseException, etc. La excepción verificada ocurre en la etapa de compilación, y debe usar TRY ... Catch (o lanzamientos) o la compilación no se pasará.
Excepciones sin control: generalmente una excepción que no debería haber sucedido si todo es normal, pero sucede. Ocurre durante el tiempo de ejecución y tiene incertidumbre, principalmente causada por problemas lógicos en el programa. Por ejemplo, ArrayIndexoUtofBoundException, ClassCastException, etc. Desde la perspectiva del lenguaje en sí, los programas no deben usar excepciones como Catch. Aunque pueden atrapar y recuperarse de excepciones como RuntimeException, no se alienta a los programadores terminales a hacerlo porque no hay necesidad de hacerlo. Debido a que este tipo de error es un error en sí y debe solucionarse, el programa debe detenerse inmediatamente cuando ocurran dichos errores. Por lo tanto, ante los errores y las excepciones sin control, el programa debe finalizarse automáticamente. Los programadores no deben hacer cosas como Try/Catch, pero deben averiguar la razón y modificar la lógica del código.
RuntimeException: el sistema RuntimeException incluye la conversión de tipo incorrecta, el acceso a la matriz fuera de los límites, intentos de acceder a punteros nulos, etc.
El principio del manejo de RuntimeException es: si se produce una ENCUESTA RUNTimeException, debe ser el error de un programador. Por ejemplo, se pueden evitar las excepciones de acceso fuera de los límites de matriz controlando los subíndices de matriz y los límites de la matriz. Otras excepciones verificadas (ioexception, etc.) son generalmente errores externos, como tratar de leer datos desde el final del archivo, etc. Este no es un error del programa en sí, sino un error externo que ocurre en el entorno de aplicación.
El artículo anterior Java_Exception Clase (Introducción a la diferencia entre errores y excepciones) es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.