让遇到问题的python脚本打印错误然后继续干活

有些需要作为daemon的python脚本是需要容错性的,不能因为一次的处理失败就退出了,于是我们有类似的写法:

try:
    #do some stuff
    10 #stuff that generated the exception
except:

pass</pre>

但这样的问题在于,不管try block中的代码内部是否出了问题,都会闷不声响地继续执行,导致结果错误,因此,我需要类似java里的printStackTrace之类的函数。 Google了一下,如下:

 

import traceback
try:
    #do some stuff
    10 #stuff that generated the exception
except:
    traceback.print_exc()
    pass

print “i am still here”

这样问题就解决了,这样做不但在运行时可以在保证脚本不停的情况下发现错误,更重要的是在测试阶段不会因为用了pass语句导致未意料到的例外被放过了。

 

本文网址:http://blog.perlfect.me/2010/11/25/python-traceback.html

comments powered by Disqus