【发布时间】:2011-05-29 08:58:58
【问题描述】:
如何在 Python 中记录异常?
我查看了一些选项,发现我可以使用以下代码访问实际的异常详细信息:
import sys
import traceback
try:
1/0
except:
exc_type, exc_value, exc_traceback = sys.exc_info()
traceback.print_exception(exc_type, exc_value, exc_traceback)
我想以某种方式将字符串 print_exception() 抛出到标准输出,以便我可以记录它。
【问题讨论】:
-
在记录后至少
raise(没有参数,所以stracktrace被保留),否则你会默默地吞下异常。 -
您应该始终明确说明您要捕获的异常:
except NameError as e,比如说。这将阻止您捕获诸如KeyboardInterrupt之类的内容和 为您提供对异常对象的引用,您可以研究它以获取更多详细信息。
标签: python exception-handling logging