razrab228
@razrab228
зачем тебе знать это?

Как при возникновения ошибки php показывать своё сообщение, вместо стандартного?

Есть такой код:

$val = $_GET['val1'];
$val2 = $_GET['val2'];
echo "Result: ".intval($val)/intval($val2);


и если значение $val2 равно 0, то будет ошибка (деление на 0), как можно вместо показа сообщения "Fatal error: Uncaught DivisionByZeroError", показать своё сообщение, к примеру json, в котором будет описана ошибка.
Также и для warning, ну и т.п.
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Во-первых, данная ошибка - это проблема валидации. И в этом конкретном примере никакие ошибки РНР перехватывать не надо. А надо проверить значение (и существование ) $_GET['val1'] и $_GET['val2'] и вернуть клиенту соответствующие ошибки.

В целом же ошибки РНР перехватываются функциями set_exception_handler() для исключений, set_error_handler() для нефатальных ошибок и register_shutdown_function() для фатальных. Пример можно посмотреть здесь https://phpdelusions.net/articles/error_reporting

Важно при этом помнить, что сам текст ошибки клиенту не показывается, а доводится только сам факт ошибки, "Что-то пошло не так, зайдите позже".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы