RosettaCodeData/Task/Exceptions-Catch-an-exception-thrown-in-a-nested-call/BBC-BASIC/exceptions-catch-an-exception-thrown-in-a-nested-call.basic
2023-07-01 13:44:08 -04:00

26 lines
544 B
Text

REM Allocate error numbers:
U0& = 123
U1& = 124
PROCfoo
END
DEF PROCfoo
ON ERROR LOCAL IF ERR = U0& THEN PRINT "Exception U0 caught in foo" ELSE \
\ RESTORE ERROR : ERROR ERR, REPORT$
PROCbar
PROCbar
ENDPROC
DEF PROCbar
PROCbaz
ENDPROC
DEF PROCbaz
PRIVATE called%
called% += 1
CASE called% OF
WHEN 1: ERROR U0&, "Exception U0 thrown"
WHEN 2: ERROR U1&, "Exception U1 thrown"
ENDCASE
ENDPROC