返回介绍

例子:语法嵌套化

发布于 2024-01-29 22:24:14 字数 1048 浏览 0 评论 0 收藏 0

第33章讨论新的统一后的try/except/finally语句时,就像我提到的那样,从语法上有可能让try语句通过其源代码中的位置来实现嵌套。

其实,这段代码只是像之前的那个例子一样(行为也相同),设置了相同的处理器嵌套结构。实际上,语法嵌套的工作就像图35-1和图35-2所描绘的情况一样。唯一的差别就在于,嵌套处理器实际上是嵌入try代码块中,而不是写在其他被调用的函数中。例如,嵌套的finally处理器会因一个异常而全部启动,无论是语法上的嵌套,或者因运行时流程经过代码中某个部分。

参考图35-2有关这段代码运行的图形说明。效果是相同的,不过函数的逻辑变成了嵌套语句。有关语法嵌套更有用的例子,可以考虑下面的文件except-finally.py。

此代码在异常引发时,会对其进行捕捉,而且无论是否发生异常,都会执行finally终止动作。这需要一点时间去理解,但是其效果很像在单个try语句内结合except和finally(在Python 2.5及其以后的版本中)。

就像我们在第33章见到过的,Python 2.5时,except和finally子句可以混合在相同try语句中。这使本节所讲的某些语法嵌套变得不再必要,虽然依然可用,但可能是出现在Python 2.5版以前的代码中,而且可作为执行其他的异常处理行为的技术。

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文