Jestem w trakcie tworzenia obiektowego skryptu w php5. Zacząłem od własnego sterownika bazy danych. Napisałem taki kod:
<?php class DBMySQL { public function __construct() { self::$zapytan = 0; self::$dbcon = FALSE; } { if (!self::$dbcon) { throw new Exception('Nie udało się połączyć z bazą danych.'); } return self::$dbcon; } { if (!self::$dbhandle) { throw new Exception('Nie udało się wybrać bazy.'); } return self::$dbhandle; } { self::$liczbaZapytan++; self::$query = $query; } { self::$queryResult = $result; return self::$temp; } { self::$queryResult = $result; } { } { self::query('BEGIN'); } { self::query('COMMIT'); } { self::query('ROLLBACK'); } { return $liczbaZapytan; } } ?>
W dwóch sytuacjach użyłem rzucania wyjątków w przypadku błedu (łączenie z bazą i wybieranie bazy). Chciałem też dać obsługe wyjątków do innych funkcji, np. query(), ale jakoś nie wyobrażam sobie później takiego wykonywania zapytań:
<?php try { DBMySQL::query("SELECT * FROM tabela"); } catch (Exception $e) { } ?>
Jest jakiś sposób na rzucanie wyjątków, żeby nie trzeba było ich później za każdym razem obsługiwać w kodzie? I czy warto rzucać wyjątki w przypadku takiej funkcji jak query(), lub numRows()?