A Try..Finally statement has the following form:
_________________________________________________________________________________________________________
Try...finally statement
___________________________________________________________________
If no exception occurs inside the statement List, then the program runs as if the Try, Finally and End keywords were not present.
If, however, an exception occurs, the program flow is immediatly transferred from the point where the excepion was raised to the first statement of the Finally statements.
All statements after the finally keyword will be executed, and then the exception will be automatically re-raised. Any statements between the place where the exception was raised and the first statement of the Finally Statements are skipped.
As an example consider the following routine:
Procedure Doit (Name : string); Var F : Text; begin Try Assign (F,Name); Rewrite (name); ... File handling ... Finally Close(F); end; |