PostgreSQL自定义异常条件 [英] PostgreSQL custom exception conditions

查看:280
本文介绍了PostgreSQL自定义异常条件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is it possible to create custom conditions when I raise an exception? Consider the following example:

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

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

Here I use 'division_by_zero' condition to catch the exception. What I'd like to do is something like this:

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

这样我就不会干扰可能的标准例外情况。我可以做y:= 1/0;并捕获divide_by_zero,但看起来不正确。

so that I don't interfere with possible standard exceptions. I could just do y:= 1 / 0; and catch division_by_zero, but it does not look right.

推荐答案

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自定义异常条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆