0

私は数時間解決策を探していましたが、何かが足りないだけかもしれません..

私はprotocol.ReconnectingClientFactory正常に動作する実装を実装したファクトリを持っていますが、プログラムの実行が終了するたびに、Unhandled error in Deferred実行時に発生した切断ごとにログに大量のメッセージが表示されます。

2012-06-14 12:28:51+0100 [-] Unhandled error in Deferred:
2012-06-14 12:28:51+0100 [-] Unhandled Error
        Traceback (most recent call last):
        Failure: twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion: Connection lost.

ログが最後にこれでスパムされないように、実行時に何らかの方法でこれらを「処理」する方法はありますか..(または、何らかの方法でスパムされないようにします..)解決策が何であるかは本当に気にしません、すべてをログに記録する次のメソッドが既にあります

def clientConnectionLost(self, connector, reason):
        log.msg('Lost connection. Reason: %s' % reason)

エラーが適切に処理されるように、Failureオブジェクトである「理由」でできることはありますか..?

とにかく、私は Twisted に習熟しているとは言いませんので、助けていただければ幸いです。

よろしくお願いします。

4

1 に答える 1

1

メッセージUnhandled error in Deferredは、エラーの原因を示し、エラーを解消する方法を示唆しています。が結果Deferredとともにガベージ コレクションされると、Failureこれらのメッセージがログに記録されます。これは、エラーが処理されなかったためです。

この方法で失敗するエラー ハンドラ (およびerrback ) を に追加し、Deferred必要に応じてエラーを処理します (アプリケーションに適している場合は、無視することも含めて)。

于 2012-06-12T17:31:58.277 に答える