返回介绍

异常处理:简明扼要

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

和本书介绍过的其他核心语言话题相比,异常对Python而言是相当简单的工具。因为它们是如此简单,那么我们就马上看第一个例子吧。

默认异常处理器

假设编写了下面的函数。

这个函数没什么特别的,只是通过传入的索引值对对象进行索引运算。在正常运算中,它将返回合法的索引值的结果。

然而,如果要求这个函数对字符串末尾以后的位置做索引运算,当函数尝试执行obj[index]时,就会触发异常。Python会替序列检测到超出边界的索引运算,并通过抛出(触发)内置的IndexError异常进行报告。

因为我们的代码没有刻意捕捉这个异常,所以它将会一直向上返回到程序顶层,并启用默认的异常处理器:就是打印标准出错消息。此时,你也许已经熟悉了标准出错消息。这些消息包括引发的异常还有堆栈跟踪:也就是异常发生时激活的程序行和函数清单。

这里的出错消息由Python 3.0打印出来;它随着每个版本略有不同,并且甚至随着每个交互式shell而有所不同。通过交互模式编写代码时,文件名就是"stdin"(标准输入流),表示标准的输入流。当在IDLE GUI的交互shell中工作的时候,文件名就是"pyshell",并且会显示出源行。不管哪种方式,当没有文件的时候,文件的行号在这里并没有太大的意义(我们将在本书的本部分中看到更多有趣的出错消息)。

在交互模式提示符环境外启动的更为现实的程序中,顶层的默认处理器也会立刻终止程序。对简单的脚本而言,这种行为很有道理。错误通常应该是致命错误,而当其发生时,所能做的就是查看标准出错消息。

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

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

发布评论

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