(* Library module defined by the International Standard Information technology - programming languages BS ISO/IEC 10514-1:1996E Part 1: Modula-2, Base Language. Copyright ISO/IEC (International Organization for Standardization and International Electrotechnical Commission) 1996-2021. It may be freely copied for the purpose of implementation (see page 707 of the Information technology - Programming languages Part 1: Modula-2, Base Language. BS ISO/IEC 10514-1:1996). *) DEFINITION MODULE GeneralUserExceptions; (* Provides facilities for general user-defined exceptions *) TYPE GeneralExceptions = (problem, disaster); PROCEDURE RaiseGeneralException (exception: GeneralExceptions; text: ARRAY OF CHAR); (* Raises exception using text as the associated message *) PROCEDURE IsGeneralException (): BOOLEAN; (* Returns TRUE if the current coroutine is in the exceptional execution state because of the raising of an exception from GeneralExceptions; otherwise returns FALSE. *) PROCEDURE GeneralException(): GeneralExceptions; (* If the current coroutine is in the exceptional execution state because of the raising of an exception from GeneralExceptions, returns the corresponding enumeration value, and otherwise raises an exception. *) END GeneralUserExceptions.