12

例外を発生させたときにカスタム条件を作成することはできますか? 次の例を検討してください。

BEGIN       
    y := x / 0;
EXCEPTION
    WHEN division_by_zero THEN
        RAISE NOTICE 'caught division_by_zero';
        RETURN x;
END;

ここでは、「division_by_zero」条件を使用して例外をキャッチします。私がやりたいことは次のようなものです:

BEGIN       
    [...]
    RAISE custom_condition;
EXCEPTION
    WHEN custom_condition THEN
       [...]
END;

可能性のある標準例外に干渉しないようにします。y:= 1 / 0; を実行するだけです。division_by_zero をキャッチしますが、見た目が正しくありません。

4

1 に答える 1

27
begin
    if $1='bar' then
        raise exception using
            errcode='NOBAR',
            message='Bar is prohibited',
            hint='We do not talk to this guy';
    end if;
exception
    when sqlstate 'NOBAR' then
        update nobar_raised set count=count+1;
end;

より詳しい情報:

于 2011-10-14T13:50:33.883 に答える