GLBasic User Manual

Main sections

THROW

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.

To signal an error (known as raising an exception) within the TRY block of code you use the THROW command. THROW takes an error string as an argument. When an exception is thrown, the program jumps immediately to the CATCH block of code.

Example
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

See also...