RuntimeError defines the exception raised by the compiler and
runtime system for the various checked runtime errors defined by
the language.
INTERFACERuntimeError ; IMPORT RT0; <*IMPLICIT*> EXCEPTION E (T);
Because E is implicit, the compiler does not warn about
where it might occur and the runtime allows it to escape
from procedures that don't explicitly list it in their
RAISES{} clauses.
TYPE
T = {
AssertFailed, (* 0 <*ASSERT*> condition was FALSE. *)
ValueOutOfRange, (* 1 An enumeration or subrange value was out of range. *)
SubscriptOutOfRange, (* 2 An array subscript was out of range. *)
IncompatibleArrayShape, (* 3 open array had the wrong shape *)
BadMemoryReference, (* 4 attempted to reference a bad location in memory. *)
NarrowFailed, (* 5 An explicit or implicit NARROW() operation failed. *)
NoReturnValue, (* 6 A function failed to return a value. *)
UnhandledCase, (* 7 no handler for the current CASE value. *)
UnhandledTypecase, (* 8 no handler for the given type in a TYPECASE stmt. *)
StackOverflow, (* 9 A thread stack overflowed *)
OutOfMemory, (* 10 NEW() was unable to allocate more memory. *)
UnalignedAddress, (* 11 attempted to get the address of an unaligned value *)
UnhandledException, (* 12 An exception was raised, but not handled. *)
BlockedException, (* 13 An exception was blocked by a RAISES clause. *)
IntegerOverflow, (* 14 integer result too large to represent *)
IntegerDivideByZero, (* 15 Attempt to DIV or MOD by zero. *)
FloatDivideByZero, (* 16 Attempted floating-point division by zero. *)
FloatOverflow, (* 17 floating-point result too large to represent *)
FloatUnderflow, (* 18 floating-point result too small to represent *)
FloatInexact, (* 19 floating-point result is inexact *)
FloatInvalid, (* 20 invalid floating-point argument *)
DuplicateBrand, (* 21 two types with the same brand exist *)
MissingType, (* 22 a compile-time type is missing at link time *)
SupertypeCycle, (* 23 supertypes of an object form a cycle *)
OpaqueTypeRedefined, (* 24 multiple full revelations of an opaque type *)
InconsistentRevelation, (* 25 partial revelations don't match type declarations *)
UndefinedMethod, (* 26 a NIL-valued method was invoked *)
PrivilegedInstruction, (* 27 a privileged machine instruction was attempted *)
SystemError, (* 28 a low-level OS or machine error occurred *)
Unknown (* 29 *)
(* NOTE: going past 31 requires backend and runtime change *)
(* NOTE: This enumeration must be kept in synch with the version
of M3CG.RuntimeError used by the compiler. *)
};
PROCEDURE Self (): RT0.ExceptionPtr;
Returns the runtime representation of E PROCEDURE Tag (t: T): TEXT;
Returns a message describing t. PROCEDURE Raise (t: T);
RAISE(t).
END RuntimeError.