다른 주제에 대해서도 토론 된 것을 알고 있습니다. 제가 묻는 것은 정확하게이 질문의 제목입니다.Delphi - finally 블록은 컴파일러에서 올바르게 실행되도록 보장합니까?
try/finally가 실행되지 않는 경우가 있습니까? 이런 일이 수 있다면 나는/finally 블록을 사용할 수 있어야하는 try..except에 대해 이야기하고 있지 않다
try
//some error here
finally
//code that MUST be executed
end;
은, 그냥 부탁 해요.
LE : Application.Terminate/unplug 컴퓨터는 특별한 경우입니다.
컴파일러는 전 세계 또는 사용자의 PC를 넘어서는 어떠한 보증도 제공하지 않습니다. 무엇이 먼저 오는지. 그러나 문제가되는 모든 경우, 즉 최종 블록이 여전히 유용한 것을 할 수있는 경우 실행됩니다. –
이 질문은 http://stackoverflow.com/questions/3484353/is-there-suchcase-when-in-try-finally-block-the-finally-wont-be-executed에서 보았습니다. Java 개발자는 웜홀/세계의 종말 등을 생각하지 않습니다. 나는 대답을 위해 – RBA
이지만 Win64에는 없다는 것을 인정해야한다. 하지만 컴파일러에 의해 보장됩니까? –