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)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

联邦学习小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值