Nette Documentation Preview

syntax
Kivételek
*********

A Nette Database kivétel-hierarchiát használ. Az alaposztály a `Nette\Database\DriverException`, amely a `PDOException`-ből öröklődik, és kibővített lehetőségeket biztosít az adatbázis-hibák kezelésére:

- A `getDriverCode()` metódus visszaadja az adatbázis-driver hibakódját.
- A `getSqlState()` metódus visszaadja az SQLSTATE kódot.
- A `getQueryString()` és `getParameters()` metódusok lehetővé teszik az eredeti lekérdezés és paramétereinek lekérését.

A `DriverException`-ből a következő specializált kivételek öröklődnek:

- `ConnectionException` - jelzi az adatbázis-szerverhez való csatlakozás sikertelenségét.
- `ConstraintViolationException` - alaposztály az adatbázis-korlátozások megsértéséhez, amelyből öröklődnek:
  - `ForeignKeyConstraintViolationException` - idegen kulcs megsértése.
  - `NotNullConstraintViolationException` - NOT NULL korlátozás megsértése.
  - `UniqueConstraintViolationException` - érték egyediségének megsértése.


Példa a `UniqueConstraintViolationException` kivétel elkapására, amely akkor következik be, ha olyan e-mail címmel próbálunk meg felhasználót beszúrni, amely már létezik az adatbázisban (feltéve, hogy az email oszlopnak egyedi indexe van).

```php
try {
	$database->query('INSERT INTO users', [
		'email' => 'john@example.com',
		'name' => 'John Doe',
		'password' => $hashedPassword,
	]);
} catch (Nette\Database\UniqueConstraintViolationException $e) {
	echo 'Már létezik felhasználó ezzel az e-mail címmel.';

} catch (Nette\Database\DriverException $e) {
	echo 'Hiba történt a regisztráció során: ' . $e->getMessage();
}
```

Kivételek

A Nette Database kivétel-hierarchiát használ. Az alaposztály a Nette\Database\DriverException, amely a PDOException-ből öröklődik, és kibővített lehetőségeket biztosít az adatbázis-hibák kezelésére:

  • A getDriverCode() metódus visszaadja az adatbázis-driver hibakódját.
  • A getSqlState() metódus visszaadja az SQLSTATE kódot.
  • A getQueryString() és getParameters() metódusok lehetővé teszik az eredeti lekérdezés és paramétereinek lekérését.

A DriverException-ből a következő specializált kivételek öröklődnek:

  • ConnectionException – jelzi az adatbázis-szerverhez való csatlakozás sikertelenségét.
  • ConstraintViolationException – alaposztály az adatbázis-korlátozások megsértéséhez, amelyből öröklődnek:
    • ForeignKeyConstraintViolationException – idegen kulcs megsértése.
    • NotNullConstraintViolationException – NOT NULL korlátozás megsértése.
    • UniqueConstraintViolationException – érték egyediségének megsértése.

Példa a UniqueConstraintViolationException kivétel elkapására, amely akkor következik be, ha olyan e-mail címmel próbálunk meg felhasználót beszúrni, amely már létezik az adatbázisban (feltéve, hogy az email oszlopnak egyedi indexe van).

try {
	$database->query('INSERT INTO users', [
		'email' => 'john@example.com',
		'name' => 'John Doe',
		'password' => $hashedPassword,
	]);
} catch (Nette\Database\UniqueConstraintViolationException $e) {
	echo 'Már létezik felhasználó ezzel az e-mail címmel.';

} catch (Nette\Database\DriverException $e) {
	echo 'Hiba történt a regisztráció során: ' . $e->getMessage();
}