Exception handling 捕获所有错误psql函数异常

Exception handling 捕获所有错误psql函数异常,exception-handling,plpgsql,psql,Exception Handling,Plpgsql,Psql,我正在编写一个带有异常捕获和忽略的函数。我想捕捉所有的异常并忽略它。是否可以捕获所有异常而不是单独捕获 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 ****

我正在编写一个带有异常捕获和忽略的函数。我想捕捉所有的异常并忽略它。是否可以捕获所有异常而不是单独捕获

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;
除了唯一例外,它应该是任何例外…

您可以使用以下子句:


毫无例外,使用这一条款不是个好主意。使用此模式时,调试、问题诊断可能非常糟糕。这是强大的功能(有时是必要的),但危险

这种类型的异常会锁定表吗?如果是这样,断开会话会释放锁。@codeBarer-exception by self locks nothing-某些命令会在表上创建锁。Postgres在事务结束时释放锁-处理异常基于创建和释放保存点。据我所知,它对锁没有任何影响。
BEGIN
  do something
EXCEPTION WHEN OTHERS THEN
  handle any exception
END;