繁体   English   中英

如何忽略QueryPath中的PHP可捕获的致命错误?

[英]How to ignore a PHP catchable fatal error from QueryPath?

我正在使用QueryPath从网站上抓取一些数据。 但是,我经常收到以下错误消息,并且脚本终止。

PHP Catchable fatal error:  Argument 1 passed to DOMXPath::__construct() must be an instance of DOMDocument, null given, called in ....inc/QueryPath/QueryPath/CSS/DOMTraverser.php on line 417 and defined in ....inc/QueryPath/QueryPath/CSS/DOMTraverser.php on line 467

该错误不给我任何线索,这行的代码错误是从哪里来的,但假设它是从哪里来$outHtml = htmlqp($outHtml); 我尝试给htmlqp命令加上@htmlqp前缀。

这没有用,所以我然后尝试将htmlqp包装在catch {}语句中,这似乎也没有帮助。

我要做的就是忽略该错误并继续操作,而不是让脚本炸弹消失。 救命!

这是一个可捕获的致命错误。

如果抓住了它,您可以获得完整的堆栈跟踪。

例如:

try {
   thisfunctionthrowsanexception();
} catch (Exception $e) {
    var_dump(get_class($e));
    echo $e->getTraceAsString();
}

@隐藏错误。 您永远不需要使用它。

我只是想解决一些生产代码中的相反问题:类型提示根本不起作用。 我将罪魁祸首追溯到以下代码:

set_error_handler('errorHandler');

function errorHandler($errno, $errstr, $errfile, $errline) {
    // Whole bunch of irrelevant code
    // ...

    return;
}

它通过根本不执行任何操作来处理错误!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM