9

如果没有抛出异常,我有一些我想执行的代码。

目前我正在这样做:

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

这可以改进吗?这是最好的方法吗?

更新0

如果以及当控制从 try 子句的末尾流出时,可选的 else 子句将被执行。

目前,除了出现异常或执行 return、continue 或 break 语句的情况外,控制“流离尽头”。

4

2 回答 2

26
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
于 2011-08-02T12:22:38.823 回答
9

您的代码表明您不想在发生异常时捕获异常,所以为什么不简单地

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

(我错过了什么吗?)

于 2011-08-02T12:53:51.160 回答