网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

postgresql中抛出异常的方法-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

目前创新互联公司已为1000+的企业提供了网站建设、域名、雅安服务器托管、网站改版维护、企业网站设计、大渡口网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

这篇文章主要介绍postgresql中抛出异常的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

在PL/pgSQL函数中,如果没有异常捕获,函数会在发生错误时直接退出,与其相关的事物也会随之回滚。我们可以通过使用带有

EXCEPTION子句的BEGIN块来捕获异常并使其从中恢复。见如下声明形式:

[ <> ]
[ DECLARE
    declarations ]
BEGIN
    statements
EXCEPTION
  WHEN condition [ OR condition ... ] THEN
            handler_statements
  WHEN condition [ OR condition ... ] THEN
         handler_statements
END;

如果没有错误发生,只有BEGIN块中的statements会被正常执行,然而一旦这些语句中有任意一条发生错误,其后的语句都将被跳过,

直接跳转到 EXCEPTION块的开始处。此时系统将搜索异常条件列表,寻找匹配该异常的第一个条件,如果找到匹配,则执行相应的 

handler_statements,之后再执行END的下一条语句。如果没有找到匹配,该错误就会被继续向外抛出,其结果与没有EXCEPTION子 

句完全等同。如果此时handler_statements中的语句发生新错误,它将不能被该EXCEPTION子句捕获,而是继续向外传播,交由其外层 

的EXCEPTION子句捕获并处理。

在PostgreSQL中可以利用RAISE语句报告信息和抛出错误,其声明形式为:

postgresql中抛出异常的方法

这里包含的级别有DEBUG(向服务器日志写信息)、LOG(向服务器日志写信息,优先级更高)、INFO、NOTICE和WARNING(把信息写到服务器日志以及转发到客户端应用,优先级逐步升高)和EXCEPTION抛出一个错误(通常退出当前事务)。某个优先级别的信息是报告给客户端还是写到服务器日志,还是两个均有,是由log_min_messages和client_min_messages这两个系统初始化参数控制的。

在format部分中,%表示为占位符,其实际值仅在RAISE命令执行时由后面的变量替换,如果要在format中表示%自身,可以使用%%的

形式表示,见如下示例:

RAISE NOTICE 'Calling cs_create_job(%)',v_job_id;--v_job_id变量的值将替换format中的%。
RAISE EXCEPTION 'Inexistent ID --> %',user_id;

简单来说:

--抛出异常
RAISE EXCEPTION '你出问题了。该修修!';
--使用SQLERRM 来显示错误信息。
RAISE EXCEPTION '(%)', SQLERRM;

见如下示例:

CREATE OR REPLACE FUNCTION GETEXCEPTION(v_phone text) RETURNS void AS
$$
BEGIN
    IF v_phone = 'iphone' THEN
       RAISE EXCEPTION '你出问题了。该修修!';
    ELSIF  v_phone = 'samsung' THEN
       RAISE EXCEPTION '你会爆炸,离你远点!';
    else
       RETURN;
    END IF;
    EXCEPTION
    WHEN others THEN
    RAISE EXCEPTION '(%)', SQLERRM;
END
$$ LANGUAGE PLPGSQL;

以上是postgresql中抛出异常的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!


名称栏目:postgresql中抛出异常的方法-创新互联
新闻来源:http://bjjierui.cn/article/ddssod.html

其他资讯