7
例外を発生させたときにカスタム条件を作成することはできますか? 次の例を考えてみましょうPostgreSQLのカスタム例外条件
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; split_by_zeroをキャッチしますが、正しく表示されません。
ありがとう! * errcode *パラメータは正確に5桁/大文字のASCII文字でなければなりません。そうしないと、エラー( 'invalid SQLSTATE code')が発生します。 '注意:SQLSTATEコードでエラーコードを指定するときは、あらかじめ定義されているエラーコードに限らず、5桁の英数字やその他の大文字のASCIIコードを選択することができます。 '0000より大きい。カテゴリコードであり、カテゴリー全体をトラップすることによってのみトラップすることができるので、3つのゼロで終わるエラーコードを投げるのは避けることをお勧めします。 ' – Snifff
@Sniff:ありがとうございます - errcode文字 – Tometzky
@Tometzky:exception.diagnosticの下のどのプロパティが 'Bar is prohibited'ですか?それはMESSAGE_TEXTかPG_EXCEPTION_DETAILかPG_EXCEPTION_HINTですか? (docs:http://goo.gl/F5w1y) – obimod