编写程序的时候,程序员通常需要辨别事件的异常(非正常)情况,这类异常事件可能是程序本身的设计错误,也可能是外界环境发生了变化。为了处理这些情况,Python提供了功能强大的异常处理机制。
1.异常简介
在Python中,程序在执行过程中产生的错误称为异常,如列表索引越界、打开不存在的文件等。例如,运行下面代码程序会发生错误。
print(a)
open("","r")
运行产生如下错误信息:
NameError: name 'a' is not defined
FileNotFoundError: [Errno 2] No such file or directory: ''
由上述信息可知,程序产生了两个异常。其中,第1个异常的类型为NameError(名称),描述信息为a没有定义;第2个异常为FileNotFoundError,描述信息为没有找到文件。在程序中遇到这些问题,如果没有进行任何处理,程序就会终止。
2.异常类
在Python中,所有异常都是Exception的子类。Exception类定义在exceptions模块中,该模块在Python的内建命名空间中,我们不必导入就可以直接使用。
在前面,每次执行程序遇到错误的时候,程序就会引发异常。如果这个异常对象没有进行处理和捕捉,程序就会用所谓的回溯(traceback,一种错误信息)终止执行,这些信息包括错误的名称(如NameError)、原因和错误发生的行号。
下面来列举几个比较常见的异常。
2.1 NameError
尝试当问一个未声明的变量,会引发NameError。例如:
print(foo)
错误信息如下:
Traceback (most recent call last):
File "C:UsersdellDesktopzh.py", line 1, in
print(foo)
NameError: name 'foo' is not defined
上述信息表明,解释器在任何命名空间里面都没找到foo。
2.2 ZeroDivisionError
当除数为零的时候,会引发ZeroDivisionError异常。例如:
1/0
错误信息如下:
Traceback (most recent call last):
File "C:UsersdellDesktopzh.py", line 1, in
1/0
ZeroDivisionError: division by zero
事实上,任何数值被零除都会导致上述异常。
2.3 SyntaxError
当解释器发现语法错误时,会引发SyntaxError异常。例如:
list = ["a","b","c"]
for i in list
print(1)
在上述示例中,由于for循环的后面缺少冒号,所以导致程序出现如下错误信息:
File "C:UsersdellDesktopzh.py", line 2
for i in list
^
SyntaxError: invalid syntax
SyntaxError异常是为已不在运行时发生的异常,它代表着Python代码中有一个不正确的结构,使得程序无法执行。这些错误一般
本文发布于:2024-01-28 00:54:22,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063744613672.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |