我正在编写一个具有异常捕获和忽略功能的函数。我想捕获所有异常并忽略它。无论如何要捕获所有异常而不是单独捕获?
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;
代替独特的异常(exception),它应该是任何异常(exception)......
最佳答案
您可以使用 EXCEPTION WHEN OTHERS
条款:
BEGIN
do something
EXCEPTION WHEN OTHERS THEN
handle any exception
END;
毫无异常(exception),使用这个子句不是一个好主意。使用此模式时,调试、问题诊断可能会很糟糕。它是强大的功能(有时是必要的),但很危险!
关于exception-handling - 捕获所有错误 psql 函数异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42006549/