MODULE TExceptCase; (* M4: a CASE selector with no matching label and no ELSE raises caseSelectException. *) FROM M2EXCEPTION IMPORT M2Exception, IsM2Exception, caseSelectException; TYPE Colour = (red, green, blue); VAR ExitCode : INTEGER; VAR c : Colour; PROCEDURE Select; BEGIN c := blue; CASE c OF red: ExitCode := 1 | green: ExitCode := 2 END; ExitCode := 3 EXCEPT IF IsM2Exception() AND (M2Exception() = caseSelectException) THEN ExitCode := 42 ELSE ExitCode := 4 END END Select; BEGIN ExitCode := 0; Select END TExceptCase.