0

QueryPath を使用して Web サイトからデータをスクレイピングしています。ただし、以下のエラー メッセージが表示され、スクリプトが終了することがよくあります。

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 に答える