Search code examples
pythonexceptionpython-3.xtry-catchfinally

Execute if no exception thrown


I have some code I want to execute if an exception is not thrown.

Currently I'm doing this:

try:
    return type, self.message_handlers[type](self, length - 1)
finally:
    if not any(self.exc_info()):
        self.last_recv_time = time.time()

Can this be improved on? Is this the best way to do it?

Update0

The optional else clause is executed if and when control flows off the end of the try clause.

Currently, control “flows off the end” except in the case of an exception or the execution of a return, continue, or break statement.


Solution

  • Your code suggests that you don't want to catch the exception if it occurs, so why not simply

    result = type, self.message_handlers[type](self, length - 1)
    self.last_recv_time = time.time()
    return result
    

    (Am I missing anything?)