exception-handling - 捕获所有错误 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 *****
        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/

相关文章:

c# - 如何在 CSharp 的类级别捕获所有异常?

postgresql - postgresql 物化 View 刷新

sql - 从组中获取 ANY(col) 而不是 MIN(col)

sql - 函数中命名参数的 PostgreSQL 问题

postgresql - psql 传递变量

PostgreSQL 数据类型 jsonb 最大存储范围

go - 为什么 Go 除了错误处理之外还要添加 panic 和恢复?

php - fatfree SQL 错误处理

java - 当我想要抛出异常时退出程序的最佳方法是什么?

postgresql - 要忽略 PostgreSQL 的 BEFORE TRIGGER 中的结果?