PFE - Portable Forth Environment - pfe Forth Wordsets

  PFE 0.33.71 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]