La manipulation d'EXCEPTION et de retourner le résultat de la fonction
C'est mon code
CREATE OR REPLACE FUNCTION test_excep (arg INTEGER) RETURNS INTEGER
AS $$
DECLARE res INTEGER;
BEGIN
res := 100 / arg;
BEGIN
EXCEPTION
WHEN division_by_zero
THEN RETURN 999;
END;
RETURN res;
END;
$$
LANGUAGE plpgsql;
Qui est, je dois retourné "999", s'est passé de la division par zéro, mais c': SELECT test_excep(0)
renvoie l'erreur: division by zero
CONTEXT: PL/pgSQL function test_excep(integer) line 4 at assignment
Ce qui est faux dans mon code?
OriginalL'auteur OTAR | 2013-06-07
Vous devez vous connecter pour publier un commentaire.
La
EXCEPTION
clause doit être dans le même bloc que l'exception.Par exemple:
OriginalL'auteur Erwin Brandstetter
Ici est une fonction correcte:
EXCEPTION
partie doit être à l'intérieur du bloc où l'exception est, et doit aussi être la dernière partie du bloc.OriginalL'auteur Igor Romanchenko