PFE 0.33.70
Homepage
SourceForge
Download
Documentation
-Overview
-The PFE Manual
old manual
/ (book)
-ChangeLog
-Authors
-License
(LGPL)
-Wordsets /
(book)
-Functions .. (book)
-Dp of ANS Forth
-The 4thTutor
-Forthprimer.pdf
- Old Wordsets
- Old Words List
Forth Links
* Forth Repository
* Taygeta Compilation
* TinyBoot FirmWare
* FiCL, Free Forth
*
Research Vienna
*
Research Bournemouth
* zForth WebRing
Other Links
* Tektronix/MPT
* Forth Org. (FIG)
* Forth Inc.
* MPE Ltd. Forths
* SF Win32Forth
* PD Win32Forth
* Neil Bawd
generated
(C) Guido U. Draheim
guidod@gmx.de
|
Exception
+ extensions
CATCH ( catch-xt* -- 0 | throw#! ) [ANS] => "[ANS] FORTH"
execute the given execution-token and catch
any exception that can be caught therein.
software can arbitrarily raise an exception
using THROW - the value 0 means there
was no exception, other denote implementation
dependent exception-codes.
primitive code = [p4_catch]
THROW ( throw#! -- [THROW] | throw# -- ) [ANS] => "[ANS] FORTH"
raise an exception - it will adjust the depth
of all stacks and start interpreting at the point
of the latest CATCH
if n is null nothing happens, the -1 (ie. FALSE )
is the raise-code of ABORT - the other codes
are implementation dependent and will result in
something quite like ABORT
primitive code = [p4_throw]
ABORT ( -- [THROW] ) [ANS] => "[ANS] FORTH"
throw - cleanup some things and go back to the QUIT routine
: ABORT -1 THROW ;
primitive code = [p4_abort]
ABORT" ( [string<">] -- [THROW] ) [ANS] => "[ANS] FORTH"
throw like ABORT but print an additional error-message
to stdout telling what has happened.
compiling word = [p4_abort_quote]
|