Sé que esto se discutió en otros temas también, lo que estoy preguntando es exactamente el título de esta pregunta.Delphi - try finally block está garantizado por el compilador para ser ejecutado correctamente?
¿Hay tal caso cuando try/finally el finally no se ejecuta?
try
//some error here
finally
//code that MUST be executed
end;
No estoy hablando acerca de cómo try..except finalmente deben ser utilizados/bloques, sólo estoy preguntando si esto podría suceder.
LE: Aplicación.Terminate/unplug su computadora son casos particulares.
El compilador no ofrece ninguna garantía más allá del fin del mundo, o su PC. Lo que sea primero. Pero en todos los casos en los que importa, es cuando un bloque finalmente puede hacer algo útil, se ejecutará. –
Estaba viendo esta pregunta http://stackoverflow.com/questions/3484353/is-there-such-case-when-in-try-finally-block-the-finally-wont-be-executed - parece que Los desarrolladores de Java no piensan en wormholes/fin del mundo/etc. Debo admitir que los desarrolladores de Delphi tienen el sentido del humor – RBA
no en Win64 aunque –