En Java, ¿se garantiza que se llamará al bloque "finalmente" (en el método principal)?

Soy un novato en Java y me preguntaba si tengo el siguiente código típico de Java

public class MyApp {
  public static void main(String[] args) {
    try {
      // do stuff
    } catch {
      // handle errors
    } finally {
      // clean up connections etc.
    }
  }
}

¿La JVM garantiza que el bloque finalmente siempre se ejecutará? Para comprender de dónde vengo, estoy acostumbrado a los programas de C / C ++ que podrían bloquearse si se desreferencia un puntero NULL y no se puede ejecutar ningún código después de eso.

Pero como entiendo Java y todo el negocio de GC / memoria administrada en general, no existe tal cosa como una anulación de referencia de puntero nulo, todo es una expectativa atrapable, por lo que no hay realmente una forma de que mi programa se bloquee que pueda hacer que se salte el finalmente, o hay? Por ejemplo, en Python, generalmente hago

try:
  # do stuff
except AnExceptionIKnewMightHappen:
  # react in an appropriate way
except:
  # log that weird error I had not known could happen

y nunca he tenido ninguna aplicación morir sin pasar por mi código.

Por supuesto, si el SO por alguna razón mata el proceso (o si algo mata a todo el sistema, como desconectarlo) no hay mucho que Java pueda hacer. Además, desde PHP conozco errores no detectables contra los que no puede protegerse, a pesar de que el intérprete todavía estaba allí después de que sucediera (al menos puede emitir un mensaje adecuado).

Editar Solo por claridad (no fue realmente mal entendido por nadie), permítanme agregar que estaba buscando cosas dentro de mi código eso podría llevar a que finalmente se omita. Entonces, señalar System.exit fue un recordatorio útil, aunque no puedo ver por qué querría hacer algo así.

La salida de JVM es una forma bastante obvia y lo consideraría como una causa externa. La nota que señala que también debes recordar la posibilidad de que los hilos salgan mientras JVM y la aplicación siguen ejecutándose fue muy útil, porque aunque ahora también me parece obvio, no había pensado en ello.

Respuestas a la pregunta(10)

Su respuesta a la pregunta