例外をキャッチして無視する関数を書いています。すべての例外をキャッチして無視したい。とにかくすべてではなく、すべての例外をキャッチするのですか?
CREATE OR REPLACE FUNCTION ADD_TABLE_TO_ARCHIVE (a TEXT, b TEXT)
RETURNS INTEGER AS $SUCCESS$
DECLARE SUCCESS INTEGER;
BEGIN
SUCCESS = 0;
BEGIN
UPDATE ARCHIVE_STATUS
SET *****
WHERE ***;
SUCCESS = 1;
EXCEPTION
WHEN UNIQUE_VIOLATION
SUCCESS = 0;
END;
RETURN SUCCESS;
END;
$SUCCESS$ LANGUAGE plpgsql;
ユニークな例外の代わりに、それはどんな例外であるべきです...
BEGIN
do something
EXCEPTION WHEN OTHERS THEN
handle any exception
END;
いくつかの例外がない限り、この句を使用することはお勧めできません。このパターンを使用すると、デバッグ、問題の診断がひどくなります。これは強力な機能です(必要な場合があります)が、危険です!