Elegancka obsługa wyjątków

Transakcje i obsługa błędów w PostgreSQL

Jason Myers

Principal Engineer

Graceful degradation w praktyce

DO $$
BEGIN
    UPDATE cookies SET quantity = quantity-6 WHERE name = 'Linga';
EXCEPTION 
    WHEN check_violation THEN
        INSERT INTO errors (msg) values ('Quantity can not be less than 0');
        UPDATE cookies SET quantity = 0 WHERE name = 'Linga';
        INSERT INTO errors (msg) values ('Set quantity to the 0 for Linga.');
END$$;
Transakcje i obsługa błędów w PostgreSQL

Kiedy stosować graceful degradation

  • Wczytywanie danych z zewnętrznego systemu z zamianą wartości null na 0
  • Odczyty z urządzenia dokładnego tylko do określonego progu
  • Daty spoza zakresu, które mają być zastąpione wartością zastępczą
  • Zapisywanie rekordów powodujących wyjątki do innej tabeli w celu dalszego przetwarzania
Transakcje i obsługa błędów w PostgreSQL

Kiedy rozważyć elegancką obsługę wyjątków

  • Gdy nowa wartość jest ukryta za operacją matematyczną, np. sumą, średnią lub inną agregacją.
  • Gdy nowa wartość wpływa na dane w szeregu czasowym.
Transakcje i obsługa błędów w PostgreSQL

Czas na ćwiczenia!

Transakcje i obsługa błędów w PostgreSQL

Preparing Video For Download...