0

我正在使用 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{} 语句中,这似乎也没有帮助。

我想做的就是忽略错误并继续,而不是让脚本爆炸。帮助!

4

2 回答 2

2

这是一个可捕获的致命错误.. 所以抓住它。

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

前任:

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

@隐藏错误。你永远不想使用它。

于 2013-07-25T16:37:32.733 回答
1

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

set_error_handler('errorHandler');

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

    return;
}

它处理错误......基本上什么都不做!

于 2016-10-18T00:17:41.457 回答