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

Обработка исключений

В слайдах мы обсуждали важность предоставления правильного контекста для устранения ошибок. Один из аспектов, который нередко упускается при записи сообщений, — это более глубокое объяснение причин их возникновения. Зачастую ошибки описываются обобщённо: «Некорректное значение» или «Недопустимая дата». Однако с помощью деталей и контекста можно сделать эти сообщения значительно информативнее.

В этом упражнении мы будем работать с показателем A1C — процентным содержанием эритроцитов, у которых к гемоглобину присоединён сахар. Как правило, показатели натощак ниже 5,7% считаются нормой для здоровых пациентов, от 5,7% до 6,4% — признаком преддиабета, а значение выше 6,5% обычно свидетельствует о неконтролируемом диабете.

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

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

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

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

  • Завершите блок транзакции, заполнив операторы DO и BEGIN там, где это необходимо.
  • Добавьте исключение, которое вставляет 'a1c is typically less than 14' в столбец context таблицы errors.
  • Завершите блок исключения, указав используемый процедурный язык.

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

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

-- Add a DO function
___ $$ 
-- BEGIN a transaction block
___ 
    INSERT INTO patients (a1c, glucose, fasting) 
    values (20, 89, TRUE);

-- Add an EXCEPTION                   
____ 
-- Catch all exception types
WHEN others THEN
    INSERT INTO errors (msg, detail, ___) VALUES 
  (
    'failed to insert', 
    'This a1c value is higher than clinically accepted norms.', 
    '___'
  );
END;
-- Make sure to specify the language
____ language 'plpgsql';

-- Select all the errors recorded
SELECT * FROM errors;
Редактировать и запускать код