fog
Рыцарь Джедай
Обработка ошибок с помощью set_error_handler, trigger_error
Вопрос у меня немного странный, но может кто-нибудь предложит если не решение, то хотя бы альтернативный подход к задаче.
Как я обрабатываю ошибки:
Все действия, например добавление новостей, заключены в функции.
напр. news($title, $date, $text);
если всё отработало нормально - возвращаем true
В случае возникновения ошибки, например, пустая строка в $title, генерируется trigger_error уровня E_USER_NOTICE, которую в последствии обрабатывает функция, установленная с помощью set_error_handler.
В функции обработки ошибок, строка описания ошибки записывается в глобальную переменную, которая вызывается там где нужно вывести описание ошибки, или если ошибка уровня E_USER_ERROR - отправляется на e-mail
Всё отлично если ошибка генерируется так:
За исключением того, что это происходит в несколько строк.
Хотелось бы генерировать ошибку и останавливать функцию в одну строку, может есть какие-то нюансы? Просто, как-то слишком длинно в каждом случае тягать return 0
Единственное что пришло в голову:
trigger_error отрабатывает, возвращает true, и функция возвращает !true -- false
Корректно ли это?
Может кто-нибудь посоветует более правильный подход, или посоветует скрипт где можно посмотреть, как правильно использовать set_error_handler, trigger_error.
Вопрос у меня немного странный, но может кто-нибудь предложит если не решение, то хотя бы альтернативный подход к задаче.
Как я обрабатываю ошибки:
Все действия, например добавление новостей, заключены в функции.
напр. news($title, $date, $text);
если всё отработало нормально - возвращаем true
В случае возникновения ошибки, например, пустая строка в $title, генерируется trigger_error уровня E_USER_NOTICE, которую в последствии обрабатывает функция, установленная с помощью set_error_handler.
В функции обработки ошибок, строка описания ошибки записывается в глобальную переменную, которая вызывается там где нужно вывести описание ошибки, или если ошибка уровня E_USER_ERROR - отправляется на e-mail
Всё отлично если ошибка генерируется так:
PHP:
if (!$text)
{
trigger_error('Необходимо ввести текст новости');
Return(0);
}
За исключением того, что это происходит в несколько строк.
Хотелось бы генерировать ошибку и останавливать функцию в одну строку, может есть какие-то нюансы? Просто, как-то слишком длинно в каждом случае тягать return 0
Единственное что пришло в голову:
PHP:
if (!$text) return !trigger_error('Необходимо ввести текст новости');
Корректно ли это?
Может кто-нибудь посоветует более правильный подход, или посоветует скрипт где можно посмотреть, как правильно использовать set_error_handler, trigger_error.