python笔记——异常处理机制

Posted 联邦学习小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python笔记——异常处理机制相关的知识,希望对你有一定的参考价值。

try-except结构

except可以有一个或多个。捕获异常的顺序按照先子类后父类,为了避免遗漏可能会出现的异常,可以在最后增加BaseException

#两个整数相除
try:
	n1 = int(input('请输入第一个整数'))
	n2 = int(input('请输入第二个整数'))
	print('结果为:',n1/n2)
except ZeroDivisionError:
	print('除数不能为0')
except ValueError:
	print('不能将字符串转换为数字')
except BaseException as e:
	print(e)

try-except-else结构

如果try块中没有抛出异常,则执行else块,如果try中抛出异常,则执行except块

try:
	n1 = int(input('请输入第一个整数'))
	n2 = int(input('请输入第二个整数'))
	result = n1/n2
except BaseException as e:
	print(e)
else:
	print('结果为:',result)

# try-except-else-finally结构

无论是否发生异常,finally块都会被执行,常用来释放try块中申请的资源

try:
	n1 = int(input('请输入第一个整数'))
	n2 = int(input('请输入第二个整数'))
	result = n1/n2
except BaseException as e:
	print(e)
else:
	print('结果为:',result)
finally:
	print('无论是否发生异常,总会被执行的代码')

python常见的异常类型

序号异常类型描述
1ZeroDivisionError除(或取模)零(所有数据类型)
2IndexError序列中没有此索引(index)
3KeyError映射中没有这个键
4NameError未声明/初始化对象(没有属性)
5SyntaxErrorPython 语法错误
6ValueError传入无效的参数

traceback模块

可以通过导入traceback模块,将异常信息写入日志文件,方便运维人员后续查看

import traceback

try:
	print(1/0)
except:
	with open('f:/a.log','a') as f:   #参数a表示若该文件存在则在后面追加内容,不存在则创建并写入(append)
	traceback.print_exc(file = f)

以上是关于python笔记——异常处理机制的主要内容,如果未能解决你的问题,请参考以下文章

Python异常处理

Python中异常处理

异常处理

Python笔记:异常处理机制与 open()

Python技能树共建异常捕获预处理

python笔记——异常处理机制