如果没有抛出异常则执行

发布于 2024-11-27 15:00:44 字数 417 浏览 1 评论 0原文

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

目前我正在这样做:

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

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

更新0

如果控制流离开,则执行可选的 else 子句 try 子句结束。

目前,控制“从末端流出”,除了以下情况: 异常或执行 return、Continue 或 Break 语句。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

野稚 2024-12-04 15:00:44
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
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
翻身的咸鱼 2024-12-04 15:00:44

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

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

(我错过了什么吗?)

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文