İstisnalar
Nette Veritabanı bir istisnalar hiyerarşisi kullanır. Temel sınıf, PDOException
adresini genişleten ve
veritabanı hatalarıyla çalışmak için gelişmiş işlevsellik sağlayan Nette\Database\DriverException
adresidir:
getDriverCode()
yöntemi, veritabanı sürücüsünden gelen hata kodunu döndürür.getSqlState()
yöntemi SQLSTATE kodunu döndürür.- Orijinal sorguyu ve parametrelerini almak için
getQueryString()
vegetParameters()
yöntemlerini kullanabilirsiniz.DriverException
sınıfı aşağıdaki özel istisnalar tarafından genişletilmiştir: ConnectionException
– veritabanı sunucusuna bağlanılamadığını gösterir.ConstraintViolationException
– aşağıdaki istisnaların miras aldığı veritabanı kısıtlama ihlalleri için temel sınıf:ForeignKeyConstraintViolationException
– yabancı anahtar kısıtlamasının ihlali.NotNullConstraintViolationException
– NOT NULL kısıtlamasının ihlali.UniqueConstraintViolationException
– teklik kısıtlamasının ihlali.
Aşağıdaki örnekte, veritabanında zaten var olan bir e-postaya sahip bir kullanıcı eklenmeye çalışıldığında (
email
sütununun benzersiz bir dizini olduğu varsayılarak) ortaya çıkan
UniqueConstraintViolationException
adresinin nasıl yakalanacağı gösterilmektedir: