Mark Lawrence <breamore...@yahoo.co.uk>:

>>> 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

Reply via email to