Обучение/Помощь новичкам | Вопрос по пдо
Тема закрыта by
SNEG
Причина: Разобрался в try/catch и PDOException
Причина: Разобрался в try/catch и PDOException
PhpStorm (24.02.2018 в 03:25)
SNEG , Вы не понимаете суть PDO, дело в том, что там уже всё давно сделано, нужно ПРОСТО ЮЗАТЬ, всё давно уже придумано
SNEG , Вы не понимаете суть PDO, дело в том, что там уже всё давно сделано, нужно ПРОСТО ЮЗАТЬ, всё давно уже придумано
http://phpfaq.ru/pdo
Поскольку практически КАЖДЫЙ мануал по 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 прекрасно справится сам
________
посл. ред. 24.02.2018 в 03:30; всего 3 раз(а); by SNEG
DELETED
24 февраля 2018, в 3:30
Delete
SNEG (24.02.2018 в 03:25)
PhpStorm (24.02.2018 в 03:25)
SNEG , Вы не понимаете суть PDO, дело в том, что там уже всё давно сделано, нужно ПРОСТО ЮЗАТЬ, всё давно уже придумано
http://phpfaq.ru/pdo Соединение и сразу же петух пишет в Обработка исключений что ?
если можно пример приведи с исключением чтобы я понял))
PhpStorm (24.02.2018 в 03:25)
SNEG , Вы не понимаете суть PDO, дело в том, что там уже всё давно сделано, нужно ПРОСТО ЮЗАТЬ, всё давно уже придумано
http://phpfaq.ru/pdo Соединение и сразу же петух пишет в Обработка исключений что ?
если можно пример приведи с исключением чтобы я понял))
с исключением чего?
SNEG (24.02.2018 в 03:25)
PhpStorm (24.02.2018 в 03:25)
SNEG , Вы не понимаете суть PDO, дело в том, что там уже всё давно сделано, нужно ПРОСТО ЮЗАТЬ, всё давно уже придумано
http://phpfaq.ru/pdo
Поскольку практически КАЖДЫЙ мануал по 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 прекрасно справится сам
PhpStorm (24.02.2018 в 03:25)
SNEG , Вы не понимаете суть PDO, дело в том, что там уже всё давно сделано, нужно ПРОСТО ЮЗАТЬ, всё давно уже придумано
http://phpfaq.ru/pdo
Поскольку практически КАЖДЫЙ мануал по 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 прекрасно справится сам
исключение выбрасывает сам пдо драйвер, по этому нинадо ничего трогать
MWP (24.02.2018 в 03:31)
SNEG (24.02.2018 в 03:25)
PhpStorm (24.02.2018 в 03:25)
SNEG , Вы не понимаете суть PDO, дело в том, что там уже всё давно сделано, нужно ПРОСТО ЮЗАТЬ, всё давно уже придумано
исключение выбрасывает сам пдо драйвер, по этому нинадо ничего трогать
SNEG (24.02.2018 в 03:25)
PhpStorm (24.02.2018 в 03:25)
SNEG , Вы не понимаете суть PDO, дело в том, что там уже всё давно сделано, нужно ПРОСТО ЮЗАТЬ, всё давно уже придумано
исключение выбрасывает сам пдо драйвер, по этому нинадо ничего трогать
при создании нового обьекта все автоматически ?
________
посл. ред. 24.02.2018 в 03:46; всего 2 раз(а); by SNEG
Стр.: 1, 2