kainsk, кстати по этой статье PHP покажет ошибку но при этом и все данные от базы, если база вдруг не доступна будет) автор видать это не учел когда писал
)
Я вот не пойму, разница PDO от MYSQLi в том что PDO поддерживает больше типов баз? То есть если я не собираюсь менять в скором будущем тип базы можно и не париться? Я так понял по быстродействию разницы особо то и нет)
Обычно пример выглядит как-то так
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
die('Подключение не удалось: ' . $e->getMessage(
;
}
Так вот, дети, запомните: так делать не надо НИКОГДА.
Для того, чтобы всего лишь показать ошибку, try..catch используют только дураки:
- во-первых, этот код избыточен: РНР покажет ошибку и так, безо всяких try..catch.
- во-вторых, этот код гораздо менее гибкий: он выводит ошибку ТОЛЬКО на экран, в то время как исключение улетит туда же, куда и все остальные ошибки: либо в лог файл, либо на экран, в зависимости от глобальных настроек.
- в-третьих, этот код лишает нас возможности обрабатывать все ошибки централизованно, в едином exception handler-е.
Поэтому использовать try..catch нужно только тогда, когда вы собираетесь ОБРАБОТАТЬ ошибку - то есть, совершить какое-то действие, связанное с ФАКТОМ ошибки - откатить транзакцию, например. Для того же, чтобы просто выдать сообщение об ошибке, try..catch использовать не нужно - PHP прекрасно справится сам