程序运行的过程中出现了错误。
提前在某处会发生异常的地方做好提前准备,当出现异常时有处理方法。
try:可能发生错误的代码
except:如果出现异常要执行的代码
例:
- try:
- f = open("d:1.txt","r",encoding="UTF-8")
- except:
- print("出现异常")
- f = open("d:1.txt","w",encoding="UTF-8")
AssertionError 断言语句失败(assert 后的条件为假)
AttributeError 访问的对象属性不存在
ImportError 无法导入模块或者对象,主要是路径有误或名称错误
IndentationError 代码没有正确对齐,主要是缩进错误
IndexError 下标索引超出序列范围
IOError 输入/输出异常,主要是无法打开文件
KeyError 访问字典里不存在的键
NameError 访问一个未声明的变量
OverflowError 数值运算超出最大限制
SyntaxError python语法错误
TabError Tab和空格混用
TypeError 不同类型数据之间的无效操作(传入对象类型与要求的不符合)
ValueError 传入无效的值,即使值的类型是正确的
ZeroDivisionError 除法运算中除数0 或者 取模运算中模数为0
例:
- try:
- print(name)
- except NameError as e:
- print("出现变量未定义异常")
- print(e)
结果:
出现变量未定义异常
name 'name' is not defined
使用元组方式。
例:
- try:
- 1/0
- # print(name)
- except (NameError,ZeroDivisionError) as e:
- print("出现变量未定义或除以0的异常")
- print(e)
结果:
出现变量未定义或除以0的异常
division by zero
例:
- try:
- print(name)
- except Exception as e:
- print("出现异常")
- print(e)
else表示如果没有异常要执行的代码。
例:
- try:
- print(1)
- except Exception as e:
- print(e)
- else:
- print("没有异常")
finally表示无论是否异常都要执行的代码,如关闭文件。
例:
- try:
- f = open("d:1.txt","r")
- except Exception as e:
- f = open("d:1.txt","w")
- else:
- print("没有异常")
- finally:
- f.close()
当所有函数都没有捕获异常的时候,程序会报错。
例:
- def fun1():
- num = 1/0
- def fun2():
- fun1()
- def main():
- try:
- fun2()
- except Exception as e:
- print(f"出现异常,信息:{e}")
- main()