如何避免TCPDF错误抑制系统


How to avoid TCPDF error suppressing system?

TCPDF使用了大量的PHP@运算符来抑制错误。由于我的应用程序使用自定义的错误处理程序,它仍然会得到这些"抑制"的错误。

我如何使它忽略被抑制的错误?

我曾想过使用回溯来确定错误是否来自TCPDF,但错误可能来自未使用@运算符的行。例如,这样一条线看起来像(l.6882):

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

我向Nicola Asuni(TCPDF创建者)询问了这个特定的错误,他说:"代码运行良好,错误已被故意抑制"。

我使用PHP函数set_error_handler来处理错误。

以及以下内容:error_reporting(E_ALL);在PHP 5.4 上

检查错误处理程序中的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();