Elegantní zpracování výjimek

Transakce a ošetření chyb v PostgreSQL

Jason Myers

Principal Engineer

Elegantní degradace v praxi

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$$;
Transakce a ošetření chyb v PostgreSQL

Kdy použít elegantní degradaci

  • Načítání dat z externího systému, kde chcete nahradit hodnoty null nulami
  • Získávání hodnot z přístroje, který je přesný pouze do určité meze
  • Příjem dat s datem mimo rozsah, které chcete nastavit na výchozí hodnotu
  • Zápis všech záznamů způsobujících výjimky do jiné tabulky k dalšímu zpracování
Transakce a ošetření chyb v PostgreSQL

Kdy zvážit elegantní zpracování výjimek

  • Pokud by nová hodnota byla skryta za matematickou operací, jako je součet, průměr nebo jiný agregát.
  • Pokud nová hodnota ovlivňuje data v časové řadě.
Transakce a ošetření chyb v PostgreSQL

Pojďme si procvičit!

Transakce a ošetření chyb v PostgreSQL

Preparing Video For Download...