Mark Lawrence <[email protected]>:
>>> A return statement inside a finally block is code smell.
>> Not to my nose. It seems like a perfectly reasonable thing to do.
> I agree, the code smell is the return in the except block.
Here's a regular pattern that I use for nonblocking I/O:
def poll(self):
try:
message = self.sock.recv(0x10000)
except IOError as e:
if e.errno == errno.EAGAIN:
return
if errcode == errno.EINTR:
self.trigger()
return
self.handle_io_error(e.errno)
return
self.trigger()
self.handle_recv(message)
Does anyone have an example motivating a return from finally? It seems
to me it would always be a bad idea as it silently clears all unexpected
exceptions.
Marko
--
https://mail.python.org/mailman/listinfo/python-list