Main sections
FINALLY
TRY
...
IF ... THEN THROW "Error"
...
CATCH err$
DEBUG err$ + "\n"
ASSERT 0
FINALLY
...
The TRY/THROW/CATCH/FINALLY commands are used to test if a section of code works, and to perform an action if it doesn't.
The FINALLY command ends the CATCH block. If your code does not cause an error to be thrown then the block of code between CATCH and FINALLY is skipped.
The FINALLY command also ends the TRY block.
TRY
FOR i=0 TO 5
STDOUT "call "+i+"\n"
int_div_by_2(i)
NEXT
CATCH err$
STDERR "Exception: " + err$ + "\n"
FINALLY
STDOUT "ok, done\n"
KEYWAIT
END
FUNCTION int_div_by_2: number%
IF MOD(number%, 2)<>0 THEN THROW "Odd: "+number%
STDOUT "dividing "+number%+"\n"
RETURN number / 2
ENDFUNCTION