python的genericscatch
我有一些非常奇怪的行为,似乎导致无声的例外。 我如何编写一个通用的try catch来debugging所有的exception。 有些东西是:
try: # something that fails except e: print e
更详细地介绍一下这个问题:
我有一个Django应用程序,在我的计算机上(Ubuntu Linux 8.10)通过runserver和mod-python工作正常。 在部署服务器上(Ubunut Linux 8.10),它通过runserver正常工作,但通过mod-python中的apache失败。
我已经将原因减less到了使用Berkeley DB(bsddb.db)和辅助键的应用程序的一部分。 辅助键的callback方法使用pickle来格式化键。 当我调用一个单一的值时,它失败。 但是,只有当我使用cPickle时才会失败,并且在callback函数之外的相同值上使用pickle也是可行的。
我只是想知道为什么它与cPickle失败。
在程序终止之前,例外已经默认打印了。 如果你想在其他地方发送错误(不打印),你可以这样做:
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:
回溯模块对格式化回溯相当有用。 然后您可以将其写入日志文件。
这是否工作? :
except BaseException, e: