MODULE TExceptFuncret; (* functionException: a function that falls off its end without RETURN raises a catchable language exception. *) FROM M2EXCEPTION IMPORT M2Exception, IsM2Exception, functionException; VAR ExitCode : INTEGER; PROCEDURE Missing : INTEGER; VAR i : INTEGER; BEGIN i := 1; IF i = 0 THEN RETURN 1 END END Missing; PROCEDURE Caller; BEGIN ExitCode := Missing() EXCEPT IF IsM2Exception() AND (M2Exception() = functionException) THEN ExitCode := 42 ELSE ExitCode := 1 END END Caller; BEGIN ExitCode := 0; Caller END TExceptFuncret.