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