JackShcherbakov
@JackShcherbakov

Путаница с обработкой ошибкой и исключений. Как делать правильно?

Здравствуйте, коллеги! Недавно прошел тему обработки ошибок и исключений PHP и как бы я не хотел понять всё, все же осталась пара вопросов.

Итак, давайте возьмем в качестве примера ситуацию, при которой скрипт пытается открыть несуществующий файл при помощи fopen(). По умолчанию скрипт вывалит предупреждение, которое я хочу обработать. Тут я вижу 2 пути:
  1. подавить ошибку при помощи @
  2. или поймать эту самую ошибку при помощи set_error_handler().


В обоих случаях нам надо сделать 2 вещи:
  1. Обработать ошибку
  2. Оповестить о ней пользователя
  3. Если что-то серьезное (например, невозможность подключиться к б.д), то записать информацию об ошибке/исключении в соответствуюзий лог.

И тут возникают вопросы:
  1. я не совсем понимаю как правильно оповещать пользователя о возникших исключениях и ошибках. Нельзя же тупо die("Ошибка!!!") или что-то в этом духе. И что делать с уже сгенерированным содержимым? Ведь я не хочу, что бы пользователь видел что-то помимо ошибки, т.к в этом попросу нету смысла.
  2. Также не понятно, что генерировать в функциях, которые пишу я - исключения или ошибки?


Заранее выражаю огромную благодарность всем, кто поможет.
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
DevMan
@DevMan Куратор тега PHP
1. тег "СИСТЕМЫ ОТСЛЕЖИВАНИЯ ОШИБОК" не имеет никакого отношения к вопросу (если чо, у многих тегов есть описание).
2. подавление ошибки саму ошибку не убирает, и надо убирать не сообщение о ней, а причину ее возникновения. конкретно по fopen - достаточно проверить наличие файла/доступа к нему.
3. set_error_handler и исключения - это кагбе разные области, иногда абсолютно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Spice IT Recruitment Москва
До 230 000 ₽
Smart Медицина Москва
от 150 000 ₽
Playkot Санкт-Петербург
от 150 000 до 200 000 ₽
09 июл. 2020, в 00:43
50000 руб./за проект
08 июл. 2020, в 22:59
1000 руб./за проект
08 июл. 2020, в 22:19
27000 руб./за проект