1. 程式人生 > >Postgresql - plpgsql - Errors and Messages

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語句。