我正在编写一个异常捕获和忽略的函数。我想抓住所有异常并忽略它。反正有没有抓住所有的例外而不是单独的?
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;
取代唯一的例外,它应该是任何例外......
答案 0 :(得分:9)
您可以使用EXCEPTION WHEN OTHERS
子句:
BEGIN
do something
EXCEPTION WHEN OTHERS THEN
handle any exception
END;
没有一些例外,使用这个条款并不是一个好主意。使用此模式时,调试,问题诊断可能会非常糟糕。它是强大的功能(有时是必要的),但危险!