Сторонняя библиотека, которую я использую, использует в своих кодах оператор подавления ошибок @, который вызывает подавленные ошибки через @, по-прежнему вызывает вывод ошибок, потому что я использую собственный обработчик ошибок (set_error_handler())
,
В этом страница это говорит
Если вы установили пользовательскую функцию обработчика ошибок с помощью set_error_handler (), то она все равно будет вызываться, но этот пользовательский обработчик ошибок может (и должен) вызывать error_reporting (), которая будет возвращать 0, когда вызову, вызвавшему ошибку, предшествовал символ @ ,
Однако неясно, как именно я могу поймать ошибки, которые предшествовали @.
У меня вопрос, как я могу поймать ошибки, которые были подавлены через @?
Как говорится: ваш обработчик ошибок будет по-прежнему вызываться как обычно, но вызов error_reporting()
внутри вашего обработчика ошибок даст 0
если ошибка была произведена в контексте @
, Поэтому ваш обработчик ошибок должен учитывать это и действовать соответственно.
Других решений пока нет …