TRY statementList1 FINALLY statementList2 END
where each statementList is a sequence of statements delimited by semicolons.
The TRY…FINALLY statement executes the statements in statementList1 (the TRY clause). If statementList1 finishes without raising any exceptions, statementList2 (the FINALLY clause) is executed. If an exception is raised during execution of statementList1, control is transferred to statementList2; once statementList2 finishes executing, the exception is re-raised.
If a call to the Exit procedure causes the control to leave statementList1, statementList2 is automatically executed. Thus the FINALLY clause is always executed, regardless of how the TRY clause terminates.
execute ibeblock as begin i = 1; try i = i/0; <-- Here an will be exception raised... finally i = 2; <-- ... but this statement will be executed anyway end i = 3; <-- This statement will not be executed end