2011-10-26 36 views
22

在拦网除外蟒蛇,我想打印错误消息,但我不希望程序停止执行,我知道我必须做这样的事情Java的的printStackTrace(),相当于在python

try: 
    1/0 
except: 
    print errorMessage 

在除了部分,我正在寻找类似java的printStackTrace()

+2

要打印堆栈跟踪,而不会导致异常时提出,请参阅:http://stackoverflow.com/questions/3925248/print-python-stack-trace-without-异常被抛出 – Eddified

回答

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() 
+0

只是一个单挑,[print_stack](http://docs.python.org/2/library/traceback.html#traceback.print_stack)只是从你所在的任何代码行打印堆栈,而[print_exc()打印异常的堆栈跟踪](http://docs.python.org/2/library/traceback.html#traceback.print_exception)。 – abelito