Задать вопрос
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.

Как правильно поступить?

В случае, если $dbh = new PDO($dsn, $user, $password); выдаст ошибку - показать пользователю картинку с котенком и фразу "ой, что-то сломалось".
Поэтому использовать try..catch нужно только тогда, когда вы собираетесь ОБРАБОТАТЬ ошибку - то есть, совершить какое-то действие, связанное с ФАКТОМ ошибки - откатить транзакцию, например.

Показать пользователю заглушку и прекратить дальнейшее выполнение скрипта подходит под это?
try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    log($e); //см пунктик ниже
    die('<img src="cat.jpg"><br>Ой, что-то сломалось!');
}
...
дальше идет сам скрипт, который будет выполняться только, если мы успешно подключимся

А если я хочу, чтобы в случае ошибки мне отправилось письмо на почту и вся информация(время, ип адрес пользователя, куки, сессия и тд положились в БД или .txt), то я правильно создаю функцию log($e), которая всем этим и занимается?

Заранее благодарен за ответ!
  • Вопрос задан
  • 227 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
abler98
@abler98
Software Engineer
Ну да, я бы так и сделал :)
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Нет, ну это ад какой-то.
Написано же, русским языком:
- в-третьих, этот код лишает нас возможности обрабатывать все ошибки централизованно, в едином exception handler-е.

человек читает... и старательно наступает на ровно те же самые грабли:
для КАЖДОГО запроса, который может вернуть ошибку (то есть вообще для любого) он собирается писать колбасу из try catch на 6 строк.

Для кого написано про централизованную обработку? Казалось бы - разул глаза, погуглил php exception handler, скопировал по образцу, нарисовал там хоть котиков, хоть слоников, хоть себя без трусов, добавил отправку почты себе поздравление бабушке, соболезнования котику. Все что угодно, но в одном, ОДНОМ месте.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽