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常见的异常类型
序号 | 异常类型 | 描述 |
---|---|---|
1 | ZeroDivisionError | 除(或取模)零(所有数据类型) |
2 | IndexError | 序列中没有此索引(index) |
3 | KeyError | 映射中没有这个键 |
4 | NameError | 未声明/初始化对象(没有属性) |
5 | SyntaxError | Python 语法错误 |
6 | ValueError | 传入无效的参数 |
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笔记——异常处理机制的主要内容,如果未能解决你的问题,请参考以下文章