Sobes.tech
Middle

¿Qué sucede cuando se lanza una excepción en un flujo?

sobes.tech AI

Respuesta de la IA

La propagación hacia abajo (desenrollado) de la pila de llamadas: la JVM busca un manejador de excepciones adecuado (bloque catch) en el método actual, luego en el método que lo llamó y así sucesivamente hacia arriba en la pila.

Si se encuentra un manejador:

  • Se ejecuta el código del bloque catch.
  • Puede ejecutarse el bloque finally.
  • La ejecución del programa continúa después del bloque try-catch-finally.

Si no se encuentra un manejador:

  • Se llama al método uncaughtException del ThreadGroup correspondiente, si ha sido sobrescrito.
  • Se usa el manejador por defecto (Thread.getDefaultUncaughtExceptionHandler), si está establecido.
  • Si ninguno de los manejadores anteriores está establecido, la traza de la pila de la excepción se imprime en la salida estándar de errores, y el hilo termina.

En otros hilos, la ejecución del programa continúa independientemente del hilo que terminó.