try...except...监测一段代码,想要准确的定位错误类型与错误明细
举个栗子,我们想要找到列表a的第四个值,然而其实并不存在...
1.写成'except Exception as e'的形式
这时候,代码只要写成下面这样就好了:
a = [1,2,3]
try:
a[3]
except Exception as e:
print('错误类型是',e.__class__.__name__)
print('错误明细是',e)
随后你会发现输出结果如下:
错误类型是 IndexError
错误明细是 list index out of range
这样就准确返回了,错误类型和错误明细
2.trace模块的traceback函数
使用traceback函数打印错误
a = [1,2,3]
try:
a[3]
except Exception as e:
traceback.print_exc()
输出报错信息如下:
Traceback (most recent call last):
File "<ipython-input-45-d04851f889bb>", line 4, in <module>
a[3]
IndexError: list index out of range
可见,错误的信息更加详细。精准定位了:错误行,错误位置及错误明细。
另外指定位置可以将错误信息打印出来:
a = [1,2,3]
try:
a[3]
except Exception as e:
traceback.print_exc(file = open('E:/coding/errorlog_abc.txt','a'))
则console不会再显示,结果会出现在指定的文件中
与重定向结合使用,参考文章(https://blog.csdn.net/weixin_44731100/article/details/88642269)
---------------------
作者:kunkun_1230
来源:CSDN
原文:https://blog.csdn.net/weixin_44731100/article/details/88531845
版权声明:本文为博主原创文章,转载请附上博文链接!
https://blog.csdn.net/weixin_44731100/article/details/88531845