我有一些非常奇怪的行为,似乎会导致静默异常。如何编写一个可以调试所有异常的通用try catch。大致是这样的:
try:
# something that fails
except e:
print e更多关于手头问题的详细信息:
我的电脑(Ubuntu Linux8.10)上有一个Django应用程序,它可以通过runserver和mod-python正常工作。在部署服务器(Ubuntu Linux8.10)上,它通过runserver运行得很好,但在mod-python中通过apache运行失败。
我已经将原因减少到使用伯克利DB (bsddb.db)的应用程序的一部分,以及辅助密钥。辅助密钥的回调方法使用pickle对密钥进行格式化。当我对单个值调用pickle时,它会失败。但是,只有当我使用cPickle时它才会失败,并且在回调函数外部对相同的值使用pickle也可以。
我只想知道为什么cPickle会失败。
发布于 2009-01-14 09:12:42
在程序终止之前,默认情况下已经打印了异常。如果您想将错误发送到其他地方(而不是打印它),您可以这样做:
try:
something()
except Exception as e:
send_somewhere(traceback.format_exception(*sys.exc_info()))
raise # reraises the exception请注意,使用as关键字的这种格式是针对python > 2.6的。老方法是:
except Exception, e:发布于 2009-01-14 09:10:19
traceback module对于格式化回溯非常有用。然后,您可以将其写入日志文件。
发布于 2009-01-14 09:07:41
这行得通吗?
except BaseException, e:https://stackoverflow.com/questions/442343
复制相似问题