¿Qué sucede si se llama a System.exit desde un gancho de apagado?
Tengo un cierre bastante complicado en Java: hay mucho trabajo de limpieza que hacer. En particular, estoy tratando de averiguar cómo manejar el error desde un subproceso de enganche de cierre. Mi código incluye esto actualmente:
try {
return shutdownPromise = doShutdown();
}
catch (Throwable exc) {
logger.error("An exception was thrown while shutting down the application.", exc);
System.exit(1);
return null;
}
Cuando escribí esto originalmente, básicamente pensé que un error en el cierre debería ir directamente aexit
. Peroexit
no es tan bajo nivel; llama a los ganchos de apagado.
Así que pensé -
¿Qué hace la llamada salir de un gancho de apagado?¿Cuál es la forma correcta de manejar el error desde un gancho de apagado?