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, (* <*ASSERT*> condition was FALSE. *)
ValueOutOfRange, (* An enumeration or subrange value was out of range. *)
SubscriptOutOfRange, (* An array subscript was out of range. *)
IncompatibleArrayShape, (* open array had the wrong shape *)
BadMemoryReference, (* attempted to reference a bad location in memory. *)
NarrowFailed, (* An explicit or implicit NARROW() operation failed. *)
NoReturnValue, (* A function failed to return a value. *)
UnhandledCase, (* no handler for the current CASE value. *)
UnhandledTypecase, (* no handler for the given type in a TYPECASE stmt. *)
StackOverflow, (* A thread stack overflowed *)
OutOfMemory, (* NEW() was unable to allocate more memory. *)
UnalignedAddress, (* attempted to get the address of an unaligned value *)
UnhandledException, (* An exception was raised, but not handled. *)
BlockedException, (* An exception was blocked by a RAISES clause. *)
IntegerOverflow, (* integer result too large to represent *)
IntegerDivideByZero, (* Attempt to DIV or MOD by zero. *)
FloatDivideByZero, (* Attempted floating-point division by zero. *)
FloatOverflow, (* floating-point result too large to represent *)
FloatUnderflow, (* floating-point result too small to represent *)
FloatInexact, (* floating-point result is inexact *)
FloatInvalid, (* invalid floating-point argument *)
DuplicateBrand, (* two types with the same brand exist *)
MissingType, (* a compile-time type is missing at link time *)
SupertypeCycle, (* supertypes of an object form a cycle *)
OpaqueTypeRedefined, (* multiple full revelations of an opaque type *)
InconsistentRevelation, (* partial revelations don't match type declarations *)
UndefinedMethod, (* a NIL-valued method was invoked *)
PrivilegedInstruction, (* a privileged machine instruction was attempted *)
SystemError, (* a low-level OS or machine error occurred *)
Unknown
};
(* 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.