| 12345678910111213141516171819202122232425262728293031 |
- 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.
|