¿Qué es la clase Throwable? La clase Throwable es la superclase de todos los errores o excepciones en el lenguaje Java. Es una clase común que integra todas las excepciones. Su función es extraer la información de error almacenada en la pila.
La clase Error es una subclase de la clase Throwable, que incluye excepciones del sistema, excepciones de máquinas virtuales y otros problemas que los usuarios no pueden prevenir.
La clase Exception también es una subclase de la clase Throwable. Es una excepción que puede manejar el propio programa. Se divide en excepciones de tiempo de ejecución (marcadas) y excepciones que no son de tiempo de ejecución (no marcadas). Las excepciones en tiempo de ejecución pueden o no manejarse; las excepciones que no son en tiempo de ejecución deben manejarse.
Las excepciones de tiempo de ejecución son todas excepciones de la clase RuntimeException y sus subclases, como NullPointerException, IndexOutOfBoundsException, etc. Estas excepciones no están marcadas y pueden capturarse o no procesarse en el programa. Estas excepciones generalmente son causadas por errores lógicos del programa, y el programa debe intentar evitar la aparición de tales excepciones desde una perspectiva lógica.
Cuando ocurre una RuntimeException, no necesitamos manejarla y la máquina virtual generalmente toma el control.
Después de que ocurre una excepción en tiempo de ejecución, si la excepción no se detecta ni procesa (es decir, no hay captura), el sistema arrojará la excepción hasta la capa superior. Si es de subprocesos múltiples, la arrojará. Thread.run(). Si es de un solo subproceso, será lanzado por Thread.run(). Después de lanzarlo, si es un hilo, el hilo saldrá. Si el programa principal genera la excepción, se cerrará todo el programa. Las excepciones de tiempo de ejecución son subclases de la clase Exception y también tienen las características de excepciones generales, es decir, pueden ser manejadas por bloques catch. Es solo que a menudo no lo manejamos. Es decir, si no maneja las excepciones de tiempo de ejecución, después de que ocurre una excepción de tiempo de ejecución, el hilo terminará o el programa principal terminará.
Si no desea finalizar, debe detectar todas las excepciones de tiempo de ejecución y nunca dejar que este hilo de procesamiento salga. Si aparecen datos anormales en la cola, el procesamiento normal debe ser descartar los datos anormales y luego registrar el registro. La existencia de datos anormales no debería afectar el procesamiento posterior de datos normales.
Las excepciones que no son de tiempo de ejecución son excepciones distintas de RuntimeException y todas pertenecen a la clase Exception y sus subclases. Por ejemplo: IOException, SQLException, etc. y excepciones definidas por el usuario. Para este tipo de excepción, el compilador de Java nos obliga a detectar y manejar estas excepciones; de lo contrario, el programa no se compilará. Por lo tanto, ante este tipo de excepción, nos guste o no, tenemos que escribir muchos bloques catch para manejar posibles excepciones.