更多课程 选择中心


Python培训

400-996-5531

Python常见异常类型详细介绍


在Python中,所有的异常类都是Exception的子类。Exception类定义在exceptions模块中,该模块在Python的内建命名空间中,我们不必导入就可以直接使用。

每次执行程序遇到错误的时候,程序就会引发异常。如果这个异常对象没有进行处理和捕捉,程序就会用所谓的回溯(traceback,-种错误信息)终止执行,这些信息包括错误的名称(如NameError)、原因和错误发生的行号。

下面来列举几个比较常见的异常。

1、NameError

尝试访问一个未声明的变量,会引发NameErroro例如:

print(test)

错误信息如下:

Traceback (most recent call last):

File "C:\Users\itcast\PycharmProjects\异常.py", line 8, in <;module>;

print(test)

NameError: name 'test' is not defined

上述信息表明,解释器在任何命名空间里面都没有找到test。

2、ZeroDivisionError

当除数为零的时候,会引发ZeoDioenorr异常。例如:

1/0

错误信息如下:

Traceback (most recent call last):

File "C:\Users\itcast\PycharmProjects\Chapter09\异常.py", line 8, in <;module>;

print(1/0)

ZeroDivisionError: division by zero

事实上,任何数值被零除都会导致上述异常。

3、SyntaxError

当解释器发现语法错误时,会引发SyntaxError异常。例如:

demo_list = ["a","b","c"]

for i in demo_list

print(i)

在上述示例中,由于for循环的后面缺少冒号,所以导致程序出现如下错误信息:

File "C:\Users\itcast\PycharmProjects\Chapter09\异常.py ", line 9

for i in demo_list

SyntaxError: invalid syntax

SyntaxError异常是唯一不在运行时发生的异常, 它代表着Python代码中有一个不正确的结构,使得程序无法执行。这些错误一般是在编译时发生 ,解释器无法把脚本转换为字节代码。

4、IndexError

当使用序列中不存在的索引时,会引发IndexErr异常。例如:

demo_list = []

demo_list[0]

上述示例中,demo_list列表中没有没有任何元素,使用索引0访问列表首位元素时,出现如下错误信息:

Traceback (most recent call last):

File "C:\Users\itcast\PycharmProjects\Chapter09\异常.py ", line 9, in <;module>;

demo_list[0]

IndexError: list index out of range

上述信息表面,列表的索引值超出了列表的范围。

5、KeyError

当使用字典中不存在的键访问值时,会引发KeyError 异常。例如:

dictionary = {'host':'earth', 'port':80}

dictionary['server']

上述示例中,dictionary字典中只有host和port两个键,获取server键对应的值时,出现如下错误信息:

Traceback (most recent call last):

File "C:\Users\itcast\PycharmProjects\Chapter09\异常.py ", line 9, in <;module>;

dictionary['server']

KeyError: 'server'

上述信息表明,出现了字典中没有的键server。

6、FileNotFoundError

试图打开不存在的文件时,会引发FileNotFoundError(Python 3.2以前是IOError)异常。

例如:

file = open("test")

上述示例中,使用open方法打开名为test的文件或目录,出现如下错误信息:

Traceback (most recent call last):

File "C:\Users\itcast\PycharmProjects\Chapter09\异常.py ", line 8, in <;module>;

file = open("test")

FileNotFoundError: [Errno 2] No such file or directory: 'test'

上述信息表明,没有找到名称为test的文件或者目录。

7、AttributeError

当尝试访问未知的对象属性时,会引发AttributeError异常。例如:

class Car(object):

pass

car = Car()

car.color = '黑色'

print(car.color)

print(car.name)

上述示例中,Car 类没有定义任何属性和方法,在创建Car类的实例以后,动态地给car引用的实例添加了color属性,然后访问它的color和name属性时,出现如下错误信息:

Traceback (most recent call last):

File "C:\Users\itcast\PycharmProjects\Chapter09\异常.py ", line 15, in <;module>;

print(car.name)

AttributeError: 'Car' object has no attribute 'name'

上述信息表明,在Car的实例中定义了color属性,所以可以使用car.color的方式访问;但是没有定义name属性,所以访问name属性时就会出错。

免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python入门学习19个基础语法
下一篇:Python基础知识:安装Python、解释器、代码风格

2021年Python全套免费视频教程在哪里?

Python编程学习路线

Python最高有几级?

人工智能与语音遥控的区别?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省