Go to the first, previous, next, last section, table of contents.

FATAL Pragma

<*FATAL (<exception-list> | ANY)*>

The pragma <*FATAL id-list*> may appear anywhere a declaration may appear. It asserts that the exceptions named in "id-list" may be raised, but unhandled in the containing scope. If they are, it's fatal and the program should crash. Effectively, the <*FATAL*> pragma disables a specific set of "potentially unhandled exception" warnings. If "id-list" is ANY, the pragma applies to all exceptions. The effects of the <*FATAL*> pragma are limited to its containing scope -- they cannot be imported from interfaces. For example:

EXCEPTION InternalError;
<*FATAL InternalError*>

at the top-level of a module M means that no warnings will be generated for procedures in M that raise but don't list InternalError in their RAISES clauses. Similarly,

PROCEDURE X() RAISES {} =
  BEGIN
    ...
    <*FATAL ANY*> BEGIN
       List.Walk (list, proc);
    END;
    ...
  END X;

specifies that although X raises no exceptions and List.Walk may, no warnings should be generated.


Go to the first, previous, next, last section, table of contents.