特定の例外を捕捉する
glucose が null に設定された場合にそれを捕捉し、「Glucose は null にはできません」と明示したメッセージをログに残す DO 関数を作成しましょう。
この演習はコースの一部です
PostgreSQL におけるトランザクションとエラー処理
演習の手順
- DO 関数の
BEGINブロック内で、patientsに (a1c=7.5、glucose=null、fasting=TRUE) の行をINSERTします。 - エラー発生時に
errorsの detail 列へ"Glucose can not be null."を挿入するよう、not_null_violation例外を追加してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
-- Make a DO function
DO $$
-- Open a transaction block
BEGIN
INSERT INTO patients (a1c, glucose, fasting)
VALUES (7.5, ___, TRUE);
-- Catch an Exception
EXCEPTION
-- Make it catch not_null_constraint exception types
WHEN ___ ___
-- Insert the proper msg and detail
INSERT INTO errors (___, detail)
VALUES ('failed to insert', '___');
END$$;
-- Select all the errors recorded
SELECT * FROM errors;