python 打印异常_Python打印更详细的异常信息——traceback

最近做项目的时候遇到了一个比较无语的问题,出bug了,但是给出的出错信息只有一条Android的权限信息,无法得知出错的代码位置在哪,排查起来工作量就变大了。除了项目本身的问题,就是自己没有注意使用try catch来捕获异常,加上平时写的捕获异常信息也比较模糊,这个会给后面的排查工作带来一定的影响,经过师兄的提醒后,发现可以trackback来获得更详细的异常信息。

简单的异常处理

简单的异常处理比如:

try:

pass

except Exception, e:

print e

这样捕获到的异常信息的信息量实际上不足以满足项目的需求,我们不能得知具体出错的代码是哪一行。因此,需要一个打印更详细的异常信息的办法,这就引出了traceback。

traceback

import traceback

....

try:

i = int('a')

except Exception, e:

print 'str(Exception):\t', str(Exception)

print 'str(e):\t\t', str(e)

print 'repr(e):\t', repr(e)

print 'e.message:\t', e.message

print 'traceback.print_exc():'; traceback.print_exc()

print 'traceback.format_exc():\n%s' % traceback.format_exc()

traceback.print_exc() 会直接打印出异常信息, traceback.format_exc() 会返回异常信息的字符串。根据项目原先的代码结构,我使用了traceback.format_exc()配合logging.error()来打印异常信息。这个返回的异常信息包括了发生异常的详细信息,比如定位代码行数,异常的原因。这个可以帮助开发者较快的发现问题所在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值