t_except_funcret.mod 579 B

123456789101112131415161718192021222324252627282930
  1. MODULE TExceptFuncret;
  2. (* functionException: a function that falls off its end without RETURN
  3. raises a catchable language exception. *)
  4. FROM M2EXCEPTION IMPORT
  5. M2Exception, IsM2Exception, functionException;
  6. VAR ExitCode : INTEGER;
  7. PROCEDURE Missing : INTEGER;
  8. VAR i : INTEGER;
  9. BEGIN
  10. i := 1;
  11. IF i = 0 THEN RETURN 1 END
  12. END Missing;
  13. PROCEDURE Caller;
  14. BEGIN
  15. ExitCode := Missing()
  16. EXCEPT
  17. IF IsM2Exception() AND (M2Exception() = functionException) THEN
  18. ExitCode := 42
  19. ELSE
  20. ExitCode := 1
  21. END
  22. END Caller;
  23. BEGIN
  24. ExitCode := 0;
  25. Caller
  26. END TExceptFuncret.