\ Exception handling
variable handler
+0 handler !
: catch ( cfa -- exception# | 0 )
psp@ >R
: throw ( ... exception# -- ... exception# )
?dup 0= if exit then
- handler @ rsp!
+ handler @ ?dup 0= if
+ ." Aborting: Uncaught exception " . ." ." cr
+ abort
+ then
+
+ rsp!
R> handler !
R> swap >R