Al escribir programas de Java, las excepciones generalmente se solicitan que sean atrapadas, y algunas excepciones no necesitan ser atrapadas por la fuerza. Las personas que han sido transferidas de otros idiomas como yo están un poco confundidos, por lo que lo reinterpretaré en mi opinión.
La clase base de excepción es la excepción, y las subclases de excepción incluyen RuntimeException y otras excepciones. Estas otras excepciones se denominan excepciones verificadas, y RuntimeException se llama excepciones sin control.
No es fácil de entender simplemente mirando el nombre. El compilador sabe que todos los tipos o métodos pueden arrojar excepciones, y cuando usa un determinado tipo o método, el compilador le pedirá que atraiga excepciones conocidas. La posible excepción conocida por estos compiladores es la excepción verificada. Por ejemplo, cuando cierra la transmisión del archivo, la IoException ya ha declarado en el método cerrado de que se puede lanzar, y el compilador le indica que la excepción debe ser atrapada. La excepción de RuntimeException no se conoce durante la etapa de compilación, y solo se puede determinar durante la etapa de ejecución. Debido a que este divisor se puede cambiar en la etapa de ejecución, no hay indicación para la captura. Estas runtimeExcepciones son excepciones sin control.
En resumen, Java es que el programa sea estable lo más posible. Esta explicación debe ser más clara.
Vamos al punto.
Algunos amigos pueden haber encontrado esta situación al depurar el programa. Solo hay dos razones: 1. El hilo donde se encuentra la excepción no es el mismo hilo que el hilo que está atrapando, 2. El programa no es una excepción sino un error. El error, como la excepción, hereda de lanzamiento, se refiere a un error grave que no debe ser atrapado. Cuando vi esta explicación, era tan estúpido que no entendía por qué no debería detectar el error. Debido a que ocurre un error, el programa no se ejecutará directamente, por lo que no tiene sentido atraparlo. Entonces mi problema viene de nuevo. De hecho, esta suposición no es cierta, porque si realmente existe un error, habrá descubierto problemas en el entorno de desarrollo y es imposible publicarlos en el entorno oficial.
Por desgracia, recorrí un largo camino e hice algo tan estúpido, ¡así que no debatir si el error debería ser capturado!
Todavía estoy bien informado y el propósito de escribir es obtener la guía de todos. Si el artículo te ayuda, sería genial.