On 26/06/2012, at 7:47 AM, Martin <mar...@webscio.net> wrote: > On 25/06/12 22:27, Adrian Overbury wrote: >> On 25/06/2012, at 10:16 PM, Martin <mar...@webscio.net> wrote: >> >>> On 14/06/12 12:38, Martin wrote: >>>> Hi, thanks for your reply. >>>> >>>> Indeed, the ReconnectingClientFactory is being sent the Failure object to >>>> >>>> def clientConnectionLost(self, connector, reason): >>>> log.msg('Lost connection. Reason: %s' % reason) >>>> protocol.ReconnectingClientFactory.clientConnectionLost(self, >>>> connector, reason) >>>> >>>> where "reason" is the Failure object that is "unhandled". is there >>>> anything I could do to it there to make it handled? >>>> >>>> Also, the documentation in >>>> http://twistedmatrix.com/documents/current/core/howto/defer.html says >>>> that one can do d.addErrback(err.log) to deal with unhandled errors, >>>> but what is d? >>>> >>>> In general, I'm not doing anything special.. I'm creating a >>>> ReconnectingClientFactory and connecting it to a server.. >>>> f = MyReconnectingClientFactory(..) >>>> reactor.connectSSL(url, port, f, ssl.ClientContextFactory()) >>>> reactor.run() >>>> >>>> Basically it. Any thoughts? Thanks a lot! >>>>> On Jun 11, 2012, at 8:01 AM, Martin wrote: >>>>> >>>>>> Hi there, >>>>>> >>>>>> I've been looking around for a solution for several hours now, and >>>>>> maybe >>>>>> I'm just missing something.. >>>>>> >>>>>> I've a factory that implements protocol.ReconnectingClientFactory which >>>>>> works just fine, however, whenever the program ends running, I get a >>>>>> bunch of Unhandled error in Deferred messages in my log for each >>>>>> disconnection that occurred during runtime, such as Failure: >>>>>> twisted.internet.error.ConnectionLost: ... >>>>>> >>>>>> Is there any way I could somehow "handle" these during runtime, so that >>>>>> my log wouldn't be spammed with this at the end.. (or avoid it being >>>>>> spammed somehow..) >>>>> These messages are coming from some code which is issuing Deferreds, >>>>> not from ReconnectingClientFactory. You need to add an errback to >>>>> those Deferreds in your application code. There's no way to write a >>>>> catch-all, just like there's no way to write a catch-all that can >>>>> stop exceptions from being raised in basic Python. >>>>> >>>>> I can't say more without a code example, preferably >>>>> a<http://sscce.org/>. >>>>> >>>>> -glyph >>>>> >>>>> >>>>> _______________________________________________ >>>>> Twisted-Python mailing list >>>>> Twisted-Python@twistedmatrix.com >>>>> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python >>>>> >>>>> >>> No suggestions as to how I could get rid of this? :( >>> >>> >> I believe glyph gave you the answer to that already. In your example above >> of d.addErrBack, d is the deferred object. Each of those needs to have an >> errback handler attached to it. If you don't want to see anything out of >> them, simply don't print anything. >> >>> _______________________________________________ >>> Twisted-Python mailing list >>> Twisted-Python@twistedmatrix.com >>> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python >> _______________________________________________ >> Twisted-Python mailing list >> Twisted-Python@twistedmatrix.com >> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python >> >> > Well, kind of - I know that I need to do addErrBack on the deferred > objects, I kind of knew that when I asked the original question having > read the documentation on deferreds. What I still don't know though is > how am I supposed to catch these deferreds - that is not being explained > anywhere in the documentation I'm afraid. > >
The page and bookmark http://twistedmatrix.com/documents/current/core/howto/defer.html#auto4 explains it pretty well. When there's an error your errback function is called and a failure object is passed to it. You can handle it, drop it or pass it on as you please or seem appropriate. Hope that helps. > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python