我正在编写一个程序,可以解析10个网站,定位数据文件,保存文件,然后解析它们,生成可以在NumPy库中随时使用的数据。这个文件通过错误的链接、格式错误的XML、丢失的条目和其他我还没有分类的东西而遇到的错误有很多。我最初制作这个程序是为了处理如下错误:
try:
do_stuff()
except:
pass
但现在我想记录错误:
try:
do_stuff()
except Exception, err:
print Exception, err
注意:这将打印到日志文件以供以后查看。这通常会打印非常无用的数据。我想要的是打印错误触发时打印的完全相同的行,除了截取异常之外不进行尝试,但我不希望它停止我的程序,因为它嵌套在一系列for循环中,我希望看到这些循环完成。
^{} 或^{} 将产生更多信息,如果这是你想要的。
如果正在调试并只想查看当前堆栈跟踪,可以简单地调用:
^{}
不需要手动引发异常来再次捕获它。
其他一些答案已经指出了traceback模块。
请注意,使用
print_exc
,在某些情况下,您将无法获得预期的结果。在Python 2.x中:…将显示上次异常的回溯:
如果您真的需要访问原始的回溯一种解决方案是将从^{} 返回的异常信息缓存到一个局部变量中,并使用^{} 显示它:
生产:
不过,这方面的陷阱并不多:
来自^{} 的文档:
但是,来自同一个医生:
另一方面,通过允许您访问与异常相关联的回溯,Python 3产生了一个不那么令人惊讶的结果:
。。。将显示:
相关问题 更多 >
编程相关推荐