[Twisted-Python] trouble with missing exceptions

markus espenhain me at mocisoft.com
Mon Oct 15 12:42:16 EDT 2007


Andrew Bennetts schrieb:
> markus espenhain wrote:
>> hi
>>
>> i've written a tcp client - using a derived NetstringReceiver, a 
>> ReconnectingClientFactory and just reactor.connectTCP + reactor.run.
>>
>> the problem is that after the connection is made - every exception that 
>> occurred seems to be lost and the execution at this point discontinues - 
>> also with a try/catch block around it
>>
>> class MyProtocol(basic.NetstringReceiver):
>> 	...
>> 	def onData(self, data):
>> 		print data
>> 		try:
>> 			print 'before' # printed
>> 			raise Exception('err')
>> 		except Exception, e:
>> 			print e # nothing
>> 		print 'after' # nothing
>>
>> after print 'before' nothing more in onData happens - anyway the app 
>> runs and on new data the onData is entered again
>>
>> i poke around 2h or so and i can't remember to had this problem before 
>> ... so anybody can give me a hint or maybe something that i miss?
> 
> I'm guessing this isn't literally code you've tried to run, because that will
> always print e and 'after'.  There's nothing in Twisted that changes the way
> Python's exception handling works.
> 
> Taking a guess that by “raise Exception('err')” you mean you call a function
> that somehow raises an exception your “except Exception:” block fails to catch,
> perhaps try a bare “except:”.  It might be a string exception.
> 
> Otherwise, I'd try making as minimal an example of the problem as you can that
> can reproduce the problem, and if you're still stuck, posting that to this list
> (or if it doesn't involve Twisted, comp.lang.python).  Or use “import pdb;
> pdb.set_trace()” to insert a breakpoint and step through the code in the
> debugger.
> 
> -Andrew.
> 

hi

it was a syntax error between print 'before' and raise - a lot deeper in 
the code, which - for whatever reason - didn't pop up ... pdb helped - 
thanks

markus




More information about the Twisted-Python mailing list