Ausnahmen
Nette Database verwendet eine Hierarchie von Ausnahmeklassen. Die Basisklasse ist Nette\Database\DriverException
,
die von PDOException
erbt und erweiterte Möglichkeiten zur Fehlerbehandlung bei Datenbankfehlern bietet:
- Die Methode
getDriverCode()
gibt den Fehlercode des Datenbanktreibers zurück. - Die Methode
getSqlState()
gibt den SQLSTATE-Code zurück. - Die Methoden
getQueryString()
undgetParameters()
ermöglichen es, die ursprüngliche Abfrage und ihre Parameter abzurufen.
Von DriverException
erben die folgenden spezialisierten Ausnahmeklassen:
ConnectionException
– signalisiert einen Verbindungsfehler zum Datenbankserver.ConstraintViolationException
– Basisklasse für Verletzungen von Datenbankbeschränkungen, von der erben:ForeignKeyConstraintViolationException
– Verletzung eines Fremdschlüssels.NotNullConstraintViolationException
– Verletzung einer NOT NULL-Beschränkung.UniqueConstraintViolationException
– Verletzung der Eindeutigkeit eines Wertes.
Beispiel für das Abfangen der Ausnahme UniqueConstraintViolationException
, die auftritt, wenn versucht wird,
einen Benutzer mit einer E-Mail-Adresse einzufügen, die bereits in der Datenbank vorhanden ist (vorausgesetzt, die
email
-Spalte hat einen UNIQUE-Index).