Postgresql - plpgsql - Errors and Messages
以下內容翻譯自官方文件:
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語句。