是否可以执行try-except catch仍然显示错误而不捕获每个可能的异常?我有一个案例,在每天24小时运行的脚本中,每隔几天就会发生一次异常。我不能让脚本死掉,但它们也没关系,因为只要我尝试除了一切,它都会重试。因此,当我追踪任何最后罕见的异常时,我想将它们记录到文件中以供将来调试。
示例:
try:
print(555)
except:
print("type error: "+ str(the_error))
用堆栈跟踪或类似方法替换the_error
的任何方法?
答案 0 :(得分:72)
是的你可以catch all errors这样:
try:
print(555)
except Exception as e:
print("type error: " + str(e))
对于堆栈跟踪,我通常使用traceback模块:
import traceback
try:
print(555)
except Exception as e:
print("type error: " + str(e))
print(traceback.format_exc())
答案 1 :(得分:6)
你可以这样做:
try:
print(555)
except Exception as err:
print("Erro {}".format(err))
或使用加注
Doc's永远是你的朋友
提示:避免使用"除了:"
使用更具描述性的内容,例如
...
except (ValueErro, KeyError):
除非您的代码经过严格测试,否则您无法找出每个错误。