始める無料で始める

特定の例外を捕捉する

glucose が null に設定された場合にそれを捕捉し、「Glucose は null にはできません」と明示したメッセージをログに残す DO 関数を作成しましょう。

この演習はコースの一部です

PostgreSQL におけるトランザクションとエラー処理

コースを見る

演習の手順

  • DO 関数の BEGIN ブロック内で、patients に (a1c=7.5glucose=nullfasting=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;
コードを編集して実行