logging - PHP SOAPClientは、例外をキャッチした後でもスクリプトの終了時に致命的なエラーを引き起こします。 - answerstu - answerstu.com AiAntZoo

logging - PHP SOAPClientは、例外をキャッチした後でもスクリプトの終了時に致命的なエラーを引き起こします。

次のスクリプトは、有効なWSDLを含まないことが知られているURLについて実行します。これはまさに私が期待していたことです。私が予想しなかったのは、/ var / log / phpCountエラーにログオンしたことです。

start

PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn\'t load from \'http://www.example.com/\' : Extra content at the end of the document

 in soapfail.php on line 6

Caught exception

end

この場合、PHPはその時点でスクリプトを実行しなかったとしても致命的なエラーを発生しているようです。明らかに、これは非常に簡素化されて、工夫された例です、しかし、私はダウンしたサーバーに対してSOAP要求をしていた生のシステムでこの振舞いを発見しました。ログに表示された致命的なエラーは、エラーを適切に処理できなかったと信じるようになりました。実際には、PHPが単に致命的なエラー通知を出力していないようです。ログをオフにする以外にこの動作について何かできることはありますか?UPDATE : PHPを使用しているPHPのバージョンは以下の通りです。PHP 5.5.5(CLI)(構築:10月20日2013 23 : 15 : 05)PHP Groupend Engine v 2.5.0、著作権(C)1998 - 2013 zDebug Technology XDebug v 2.2.2、著作権(C)2002 - 2013、Derick Rethansupdate 2:私はバグレポートを提出しました。php . netレポート

3つの答え

  1. これはバグです。私はあなたの2番目の更新に同意します。私は、SSL証明書名ミスマッチのためにそれを得ています。私は@演算子で出力からエラーを抑えることができました、しかし、シャットダウンで、それは最終的な「Oops」に終わりました、このエラーは、以前に報告されませんでした出力。私の推測は、SOAPライブラリがスクリプトがシャットダウンするまで生きるオブジェクトのデストラクタのエラーを引き起こしています。致命的なエラーのいくつかの種類は、カスタムエラーハンドラに到達しませんが、これは私のアプリケーションではありません。

  2. このコードを試すことができます

  3. 私は、あなたの例を実行するとき、ちょうど致命的なエラーをこの行動を得ません。明らかに異なるPHPのバージョンと設定は関連しています。私の理解は、SOAPクライアントが成功すると予想されていることです。PHPがこのエラーを扱うことができないという決定をするのはかなり珍しいです。接続が失敗したり、アプリケーションが正常に死ぬように構成するかどうかを決定する方法を見つけてください。

Leave a Reply

Your email address will not be published. Required fields are marked *

You can use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>