PFE 0.33.70

-The PFE Manual
  old manual / (book)
-License (LGPL)  
-Wordsets / (book)
-Functions .. (book)
-Dp of ANS Forth
-The 4thTutor
-   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


(C) Guido U. Draheim


+ 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]