私はツイストを使用するプロジェクトを持っています。 twisted.internet.protocol.ClientFactoryの子クラスには、clientConnectionLost/clientConnectionFailedのメソッドがあります。データ交換でエラーが発生すると、このメソッドはコネクタと理由で実行されます。私は例外の種類と価値を見ることができます。しかし、私はそれを抑圧する方法に関する情報は見つけられませんでした。処理後、未処理エラーとして発生します。グローバルな例外ハンドラを作成することはできません。このコンテキストの型と値に応じて例外を処理する必要があります(再接続など)。twisted clientConnectionLost catch/supress例外
class MyProtocol(Protocol):
def connectionMade(self):
raise Exception('Connect error')
class Client(ClientFactory):
protocol = MyProtocol
def clientConnectionLost(self, connector, reason):
print reason.type, reason.value # show type and message, OK
reason.cleanFailure() # ???
reactor.connectTCP('127.0.0.1', 80, Client())
reactor.run()
# Unhandled Error
# Traceback (most recent call last): ...............
http://sscce.org/ –
あなたは本当にこのコードを理解していないか、スマートに見せたいだけですか?はい、私は自己完結型の例を書いています。 – Victor
あなたの質問は以前は不明でした。あなたの編集内容が明らかになっているようです。ありがとう。 –