Výjimky
Nette Database používá hierarchii výjimek. Základní třídou je Nette\Database\DriverException
, která
dědí z PDOException
a poskytuje rozšířené možnosti pro práci s chybami databáze:
- Metoda
getDriverCode()
vrací kód chyby od databázového driveru - Metoda
getSqlState()
vrací SQLSTATE kód - Metody
getQueryString()
agetParameters()
umožňují získat původní dotaz a jeho parametry
Z DriverException
dědí následující specializované výjimky:
ConnectionException
– signalizuje selhání připojení k databázovému serveruConstraintViolationException
– základní třída pro porušení databázových omezení, ze které dědí:ForeignKeyConstraintViolationException
– porušení cizího klíčeNotNullConstraintViolationException
– porušení NOT NULL omezeníUniqueConstraintViolationException
– porušení unikátnosti hodnoty
Příklad zachytávání výjimky UniqueConstraintViolationException
, která nastane, když se snažíme vložit
uživatele s emailem, který už v databázi existuje (za předpokladu, že sloupec email má unikátní index).