ПочатиПочніть безкоштовно

Обробка винятків

На слайдах ми обговорювали, як надавати коректний контекст для розв'язання проблем. Одна з речей, яку часто ігнорують під час запису повідомлень, — це глибше пояснення причин. Часто помилки мають загальний вигляд, на кшталт «Bad value» або «Invalid date». Втім, ми можемо збагатити ці повідомлення деталями та контекстом.

Тут ми працюватимемо з 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;
Редагувати та запускати код