PostgreSQL 自定义异常条件

标签 postgresql exception conditional-statements custom-exceptions

是否可以在我引发异常时创建自定义条件? 考虑以下示例:

BEGIN       
    y := x / 0;
EXCEPTION
    WHEN division_by_zero THEN
        RAISE NOTICE 'caught division_by_zero';
        RETURN x;
END;

这里我使用 'division_by_zero' 条件来捕获异常。 我想做的是这样的:

BEGIN       
    [...]
    RAISE custom_condition;
EXCEPTION
    WHEN custom_condition THEN
       [...]
END;

这样我就不会干扰可能的标准异常。我可以做 y:= 1/0;并捕获 division_by_zero,但它看起来不正确。

最佳答案

begin
    if $1='bar' then
        raise exception using
            errcode='NOBAR',
            message='Bar is prohibited',
            hint='We do not talk to this guy';
    end if;
exception
    when sqlstate 'NOBAR' then
        update nobar_raised set count=count+1;
end;

更多信息:

关于PostgreSQL 自定义异常条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7767413/

相关文章:

sql - 如何在 Postgres 中创建带有公共(public)前缀(即 tag_1、tag_2、tag_3)的字符串的序列号

c++ - 抛出异常时使用 cout 语句尝试阻止行为

c - '||' token 之前的预期表达式

Javascript 有条件隐藏和显示

c - 意外结果,Gnu C 中的三元运算符

sql - 如果行在 CONCAT 函数中返回 NULL,如何删除我定义的值?

java - Redshift 和 Postgres JDBC 驱动程序都拦截 jdbc ://postgresql connection string

php - 无法为 php 7.1 启用 postgres

java - 获取 "XQueryException",意外的 token 语法错误

java - 无法从 Eclipse 查看 Tomcat 启动期间抛出的异常