首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python的泛型捕获

python的泛型捕获
EN

Stack Overflow用户
提问于 2009-01-14 09:05:20
回答 3查看 93.9K关注 0票数 98

我有一些非常奇怪的行为,似乎会导致静默异常。如何编写一个可以调试所有异常的通用try catch。大致是这样的:

代码语言:javascript
复制
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会失败。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-01-14 09:12:42

在程序终止之前,默认情况下已经打印了异常。如果您想将错误发送到其他地方(而不是打印它),您可以这样做:

代码语言:javascript
复制
try:
    something()
except Exception as e:
    send_somewhere(traceback.format_exception(*sys.exc_info()))
    raise # reraises the exception

请注意,使用as关键字的这种格式是针对python > 2.6的。老方法是:

代码语言:javascript
复制
except Exception, e:
票数 185
EN

Stack Overflow用户

发布于 2009-01-14 09:10:19

traceback module对于格式化回溯非常有用。然后,您可以将其写入日志文件。

票数 4
EN

Stack Overflow用户

发布于 2009-01-14 09:07:41

这行得通吗?

代码语言:javascript
复制
except BaseException, e:
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/442343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档