Лекция
Привет, Вы узнаете о том , что такое операторы управления ошибками php, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое операторы управления ошибками php, @, at-sign , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend) .
PHP поддерживает один оператор управления ошибками: знак @ . В случае, если он предшествует какому-либо выражению в PHP-коде, любые сообщения об ошибках, генерируемые этим выражением, будут проигнорированы.
В случае, если установлена опция track_errors, все генерируемые сообщения об ошибках будут сохраняться в переменной$php_errormsg. Эта переменная будет перезаписываться при возникновении каждой новой ошибки, поэтому в случае необходимости проверяйте ее сразу же.
// Преднамеренная ошибка при работе с файлами
$my_file = @file ('non_existent_file') or
die ("Failed opening file: error was '$php_errormsg'");
// работает для любых выражений, а не только для функций
$value = @$cache[$key];
// В случае если ключа $key нет, сообщение об ошибке не будет отображено
?>
Внимание: Оператор @ работает только с выражениями. Есть простое правило: если произвольная языковая конструкциявозвращает значение, значит вы можете использовать предшествующий ей оператор @. Например, вы можете использовать @ перед именем переменной, произвольной функцией или вызовом include(), константой и так далее. В то же время вы не можете использовать этот оператор перед определением функции или класса, условными конструкциями, такими как if или foreach.
Внимание: Оператор @ не подавляет вывод ошибок, возникающих на стадии синтаксического разбора скрипта.
На сегодняшний день оператор @ подавляет вывод сообщений даже о критических ошибках прерывающих работу скрипта. Об этом говорит сайт https://intellect.icu . Помимо всего прочего, это означает, что если вы использовали @ для подавления ошибок, возникающих при работе какой-либо функции, в случае если она недоступна или написана неправильно, дальнейшая работа скрипта будет остановлена без каких-либо уведомлений.
Как уже было сказано ранее: @
оператор подавляет все ошибки в PHP, включая уведомления, предупреждения и даже критические ошибки.
НО: Пожалуйста, реально вообще не пользуйтесь @
оператором иначе -Добро пожаловать в ад отладки!
Почему?
Ну, потому что, когда вы используете @
оператор для подавления ошибок, вы совершенно не знаете, с чего начать при возникновении ошибки. Я уже немного повеселился с унаследованным кодом, где некоторые разработчики @
довольно часто использовали оператор. Особенно в таких случаях, как файловые операции, сетевые вызовы и т. Д. Это все случаи, когда многие разработчики рекомендуют использовать @
оператор, поскольку это иногда выходит за рамки, когда здесь возникает ошибка (например, сторонний API может быть недоступен и т. Д. ).
Но какой смысл до сих пор не использовать? Давайте посмотрим с двух точек зрения:
Как разработчик: когда@
используется, я совершенно не знаю, с чего начать. Если есть сотни или даже тысячи вызовов функций с@
ошибкой, может быть как у всех. В этом случае разумная отладка невозможна. И даже если это просто ошибка третьей стороны - все в порядке, и все готово. ;-) Более того, лучше добавить достаточно подробностей в журнал ошибок, чтобы разработчики могли легко решить, является ли запись в журнале чем-то, что нужно проверять дальше, или это просто сбой третьей стороны, выходящий за рамки возможностей разработчика.
Как пользователь: Пользователям все равно, в чем причина ошибки или нет. Программное обеспечение существует для того, чтобы они работали, выполняли конкретную задачу и т. Д. Их не волнует, виноват ли это разработчик или проблема сторонних лиц. Специально для пользователей я настоятельно рекомендую регистрировать все ошибки, даже если они выходят за рамки. Возможно, вы заметите, что определенный API часто отключен. Что ты можешь сделать? Вы можете поговорить со своим партнером по API, и если он не сможет поддерживать его стабильность, вам, вероятно, следует поискать другого партнера.
Короче: вы должны знать, что есть что-то подобное @
(знание всегда хорошо), но просто не используйте это . Многие разработчики (особенно те, кто отлаживает чужой код) будут очень благодарны.
В итоге:
пожалуйста, избегайте этого. Для этого может быть веская причина, но я еще не видел ее, поэтому до этого дня я считаю, что оператор подавления ошибок (@) - зло.
В заключение, эта статья об операторы управления ошибками php подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое операторы управления ошибками php, @, at-sign и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Из статьи мы узнали кратко, но содержательно про операторы управления ошибками php
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)