Несколько вариантов:
Подавить все ошибки только для вызова этой функции
@$doc->load('http://twitter.com/statuses/user_timeline/1234567890.rss');
, что совпадает с
$oldLevel = error_reporting(0);
$doc->load('http://twitter.com/statuses/user_timeline/1234567890.rss');
error_reporting($oldLevel);
Подавление ошибок таким способом, как правило, осуждается, так как это затрудняет отладку кода. Как указал Шрапнель, вы все равно хотите отключить публичное отображение всех сообщений об ошибках в производственной системе. В системах разработки вам рекомендуется использовать error_reporting(-1);
, что позволит включить E_ALL
и E_STRICT
.
Если вы хотите использовать try/catch
, вы также можете изменить обработку ошибок по умолчанию и преобразовать все ошибки в исключения, выполнив
function myErrorHandler($errno, $errstr, $errfile, $errline) {
throw new Exception($errstr, $errno);
}
set_error_handler("myErrorHandler");
Это глобальное изменение, которое затрагивает все вопросы. Вы также должны будете использовать catch(Exception $e)
вместо Zend_Exception
в своем коде, но это сработает. Обратите внимание, что приведенное выше преобразовало бы все, даже Уведомления, поэтому вы также получите Исключение о том, что $isOk
не определено, если вы попытаетесь получить к нему доступ позже. Не стесняйтесь адаптировать обработчик по своему вкусу и ознакомьтесь с комментариями пользователей для set_error_handler
для более уточненных версий .
Еще одним глобальным изменением будет изменение application.ini в папке вашего приложения, например позволяя Zend Framework управлять обработкой ошибок:
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
Измените их по своему усмотрению. Они такие же, как в PHP.ini, например
display_errors
Это определяет, должны ли ошибки выводиться на экран как часть вывода или они должны быть скрыты от пользователя.
display_startup_errors
Даже когда display_errors включен, ошибки, возникающие во время последовательности запуска PHP, не отображаются. Настоятельно рекомендуется не включать display_startup_errors, кроме случаев отладки.