如何手动记录与ereporter一起使用的异常?

时间:2014-05-20 10:54:19

标签: python google-app-engine exception exception-handling

我在我的GAE应用中使用ereporter通过电子邮件通知所有未捕获例外情况。但我也希望了解其他(处理过的)问题,因此,我使用以下代码:

if something:
    pass
else:
    logging.exception('something is wrong')

但是ereporter在AttributeError

的情况下失败了
Traceback (most recent call last):
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ereporter/ereporter.py", line 227, in emit
signature = self.__GetSignature(record.exc_info)
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ereporter/ereporter.py", line 175, in __GetSignature
fulltype = '%s.%s' % (ex_type.__module__, ex_type.__name__)
AttributeError: 'NoneType' object has no attribute '__module__'

我明白为什么会这样 - 没有真正的例外。但是还有什么方法可以用ereporter记录这些案例吗?

1 个答案:

答案 0 :(得分:0)

正如你自己所说 - 报道也不例外。由于ereporter似乎报告异常,因此解决方案很明确:

if something:
    pass
else:
    try:
        raise Exception()
    except Exception:
         logging.exception('something is wrong')