НачатьНачать бесплатно

Перехват конкретных исключений

Давайте создадим DO-функцию, которая перехватывает ситуацию, когда для поля glucose задано значение null, и записывает сообщение о том, что Glucose не может быть null.

Это упражнение является частью курса

Транзакции и обработка ошибок в PostgreSQL

Посмотреть курс

Инструкции к упражнению

  • Внутри блока BEGIN DO-функции выполните INSERT в таблицу patients, добавив строку (a1c=7.5, glucose=null, fasting= TRUE).
  • Добавьте обработчик исключения not_null_violation, который вставляет строку "Glucose can not be null." в столбец detail таблицы errors при возникновении ошибки.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

-- 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;
Редактировать и запускать код