Как избежать TCPDF системы подавления ошибок?

TCPDF часто использует оператор PHP @ для подавления ошибок.
Поскольку мое приложение использует собственный обработчик ошибок, оно по-прежнему получает эти «подавленные» ошибки.

Как я могу заставить его игнорировать @ -подавленные ошибки?

Я думал выяснить, происходит ли ошибка из TCPDF с использованием backtrace, но ошибка может исходить из строки, не использующей оператор @.
Такая линия выглядит так (л. 6882), например:

if (($imsize = @getimagesize($file)) === FALSE) {

Я спросил Николая Асуни (создателя TCPDF) об этой конкретной ошибке, и он сказал: «Код работает нормально, и ошибка была специально исключена».

Я использую функцию PHP set_error_handler для обработки ошибок.

И следующее: error_reporting (E_ALL); на PHP 5.4

1

Решение

Проверить error_reporting() внутри обработчика ошибок (вы должны прочитать PHP документация, это объясняет ваш конкретный случай там)

Смотрите пример (адаптировано из PHP DOCS):

function myErrorHandler($errno, $errstr, $errfile, $errline ) {
if (!(error_reporting() & $errno)) {
// This error code is not included in error_reporting or was called with @
return;
}

throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler('myErrorHandler');

@strpos();
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]