Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 333
Matt Joiner Avatar asked Aug 02 '11 12:08

Matt Joiner


1 Answers

try:
   tmp = type, self.message_handlers[type](self, length - 1)
except Exception:
   pass #or handle error, or just "raise" to re-raise
else:
   self.last_recv_time = time.time()
   return tmp
like image 199
Thomas K Avatar answered Sep 18 '22 13:09

Thomas K