在python除了块之外,我想打印错误信息,但我不希望程序停止执行,我明白我必须做这样的事情
try:
1/0
except:
print errorMessage
在除了部分之外,我期待像java的printStackTrace()
答案 0 :(得分:34)
查看traceback.print_exc()
和traceback
模块的其余部分。
import traceback
try:
1/0
except:
print '>>> traceback <<<'
traceback.print_exc()
print '>>> end of traceback <<<'
答案 1 :(得分:3)
如果你真的只是想要错误信息,你可以只打印错误(请注意我如何在例外中指定例外 - 这是一个好的做法,请参阅pep8以获取有关捕获错误的建议):
try:
1/0
except Exception as e:
print e
但是,如果您想要stackstrace,正如@Eddified在评论中所说,您可以使用this answer中的示例。或者更具体地说是你的情况:
import traceback
try:
1/0
except Exception as e:
print e
traceback.print_stack()
答案 2 :(得分:2)
您还可以使用logging.exception
模块中的logging
。它会将当前异常的堆栈跟踪作为严重性为ERROR
的消息打印到默认记录器中。
链接:http://docs.python.org/2/library/logging.html#logging.Logger.exception