我正在使用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
错误没有给出任何关于错误来自 my 代码行的线索,但假设它来自$outHtml = htmlqp($outHtml);
我尝试使用htmlqp命令加前缀@htmlqp
。
这不起作用,所以我尝试将htmlqp包装在catch {}语句中,这似乎也没有帮助。
我想做的就是忽略错误并继续而不是让脚本炸弹。救命啊!
答案 0 :(得分:2)
这是一个致命的致命错误..所以抓住它。
如果你抓住它,你可以得到一个完整的堆栈跟踪。
例如:
try {
thisfunctionthrowsanexception();
} catch (Exception $e) {
var_dump(get_class($e));
echo $e->getTraceAsString();
}
@
隐藏错误。你永远不想使用它。
答案 1 :(得分:1)
我只是试图在一些生产代码中解决相反的问题:类型提示根本不起作用。我将罪魁祸首追溯到以下代码:
set_error_handler('errorHandler');
function errorHandler($errno, $errstr, $errfile, $errline) {
// Whole bunch of irrelevant code
// ...
return;
}
它通过基本上什么都不做来处理错误!