以下内容翻译自官方文档:
https://www.postgresql.org/docs/10/static/plpgsql-errors-and-messages.html
==========================================
1. Reporting Errors and Messages
使用RAISE语句来报告信息和返回错误。
RAISE [ level ] 'format' [, expression [, ... ]] [ USING option = expression [, ... ] ]; RAISE [ level ] condition_name [ USING option = expression [, ... ] ]; RAISE [ level ] SQLSTATE 'sqlstate' [ USING option = expression [, ... ] ]; RAISE [ level ] USING option = expression [, ... ]; RAISE ; |
level选项指定错误的严重程度。允许水平是调试(DEBUG),日志(LOG),信息(INFO),注意(NOTICE),警告(WARNING),和异常(EXCEPTION)。默认设置是异常(EXCEPTION)。
2. Checking Assertions
ASSERT语句是将调试检查插入到PL/PGSQL函数中的简便快捷方式。
ASSERT condition [ , message ]; |
条件是一个布尔表达式,期望它总是求值为true;如果求值为true,那么ASSERT语句就不再执行任何操作。如果结果为false或NULL,则引发ASSERT_FAILURE异常。
如果提供了可选的消息,则该表达式的结果将替换默认错误消息文本“断言失败”,如果条件失败。在断言成功的正常情况下,不计算消息表达式。
可以通过配置参数plpgsql.check_asserts启用或禁用断言的测试,该参数接受布尔值;缺省值为on。如果这个参数关闭,ASSERT语句什么也不做。
注意ASSERT是用于检测程序错误,而不是用于报告常见的错误条件。为此,使用上面提到的RAISE语句。