Example 11 (Avoiding Division-by-Zero Errors)

This example prevents “divide by zero” errors.

PROCEDURE divide
(IN dividend INT, IN divisor INT, OUT result INT, OUT message CHAR)
BEGIN
  DECLARE divide_by_zero EXCEPTION;
  IF divisor = 0 THEN
    RAISE divide_by_zero value 'Divided by zero error';
  END IF;
  SET result = dividend/divisor;
EXCEPTION
  WHEN divide_by_zero THEN
    SET message = CURRENT_EXCEPTION.MESSAGE;
END