Отлов и обработка исключений в Yii2
2015-08-18 08:44:43
... по-умолчанию все
Exception обрабатываются, за ... “Warning: Uncaught
exception”), считает эти исключения ...
+ развернуть текст сохранённая копия
В Yii2 по-умолчанию все Exception обрабатываются, за это отвечает специальный обработчик. Если при обработке запроса возникает нехорошая ситуация (например, пришли некорректные данные от клиента), то можно выбросить исключение. Обработчик сформирует человекообразный ответ.
Интересно, что в таком случае ошибка “Warning: Uncaught exception” в лог ошибок не выводится. Может создаться впечатление, что все исключения перехватываются средствами фреймворка. Но это не так. На наш проект некоторое время назад натравили средство мониторинга (в нашем случае New Relic), которое информацию обо всех выброшенных исключениях отображает в ошибках (именно как “Warning: Uncaught exception”), считает эти исключения необработанными. С этим надо было что-то делать.
Ниже расскажу о схеме обработки исключений, которую в итоге выбрал. Вполне возможно, что кому-то это еще пригодится.
Читать дальше →
Тэги:
exception,
handling,
php,
yii,
yii2,
веб-разработка,
программирование
Правильное использование Exception’ов в PHP
2015-08-10 02:04:53
Я рад бы написать что
“эта статья предназначена для новичков”, но это не так. ...
+ развернуть текст сохранённая копия
Я рад бы написать что “эта статья предназначена для новичков”, но это не так. Большинство php-разработчиков, имея опыт 3, 5 и даже 7 лет, абсолютно не понимают как правильно использовать эксепшены. Нет, они прекрасно знают о их существовании, о том что их можно создавать, обрабатывать, и т.п., но они не осознают их удобность, логичность, и не воспринимают их как абсолютно нормальный элемент разработки.
В этой статье не будет мануала по эксепшенам — это все отлично описано в документации php. Здесь я я расскажу о преимуществах использования эксепшенов, и о том, где их, собственно говоря, надо использовать. Все примеры будут для Yii
, но это не особо важно.
Читать дальше →
Тэги:
exception,
php,
yii
Использование исключений в Symfony 2
2014-07-27 13:53:57
Не так давно общался с коллегой на тему использования исключений в Symfony. Краткий обзор ...
+ развернуть текст сохранённая копия
Не так давно общался с коллегой на тему использования исключений в Symfony. Краткий обзор информации в интернете и оф. сайте фреймворка показал, что тема в документации раскрыта не слишком глубоко и ряд возможностей системы остается за кадром. Этим постом я решил немного восполнить этот пробел и поделиться тем, что удалось найти, покопавшись в коде фреймворка.
Как работает «отлов» исключений
Чтобы правильно пользоваться инструментом важно понимать, как он работает. Обработка исключений, в случае типового запроса через web, в общих чертах описана здесь. Там же упомянут весьма полезный HttpExceptionInterface, о котором напишу ниже.
В этом посте нет никаких откровений для тех, кто копался в коде symfony 2.х и её компонентов. Таким читателям можно смело пропускать этот пост.
А мне интересно.
Тэги:
exception,
php,
symfony
Логируем необрабатываемые исключения
2012-12-21 19:19:19
Надоело созерцать зелёную морду на титульной странице блога, поэтому настало время эту морду ...
+ развернуть текст сохранённая копия
Надоело созерцать зелёную морду на титульной странице блога, поэтому настало время эту морду сместить. Иногда при разработке мелких сетевых утилит приходится сталкиваться с ситуацией, когда софт был загружен на некий удаленный сервер, поработал немного и через какое-то время прекратил работать по неизвестной причине. Конечно, можно было бы вручную заходить на каждый сервер и пытаться разобраться, [...]
Тэги:
c/c++,
exception,
handled,
minidump,
seh,
winapi,
window
PHP / Исключение != ошибка
2011-10-17 17:02:12
... постоянно кидает
exception, кто-то ... на самом деле,
exception и ошибки — ... чем же
exception лучше моего ...
+ развернуть текст сохранённая копия
Многие программисты почему-то считают, что исключения и ошибки — это одно и то же. Кто-то постоянно кидает exception, кто-то через errorHandler превращает ошибки в исключения. Некоторые пытаются увеличить производительность, используя исключения. Но, на самом деле, exception и ошибки — это совершенно разные механизмы. Не надо одним механизмом заменять другой. Они созданы для разных целей.
Когда появился php5 с исключениями, а затем ZendFramework, который всегда кидает исключения — я не мог понять: чем же exception лучше моего любимого trigger_error()? Долго думал, обсуждал с коллегами и разобрался в этом вопросе. Теперь я чётко знаю, где использовать trigger_error(), а где throw new Exception().
В чём же принципиальная разница между ними?
Читать дальше →
Тэги:
error,
exception,
trigger_error,
исключение,
ошибка