Django 1.4中未捕获自定义异常

2024-10-01 17:22:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是django1.4.5和python2.7.6。你知道吗

我正在定义中的自定义异常错误例外.py地址:

class RegEmailError(Exception):
    pass

我还在另一个模块中提出:

if not "success" in response:
    from registration.exceptions import RegEmailError
    raise RegEmailError(response)

我试图在另一个模块中捕获它,该模块调用第二个模块中的函数:

from registration.exceptions import RegEmailError
try:
    self._send_confirmation()
# RegEmailError is not getting caught here..
except RegEmailError as e:
    print "send_confirmation: e", e
    mail_admins("error", "Error sending out email(s): %s" % e)
    if not fail_silently:
        raise e

不会捕获异常,而是在浏览器中显示回溯:

File "/Users/akulakov/envs/regproj/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/Users/akulakov/envs/regproj/lib/python2.7/site-packages/django/views/generic/base.py", line 48, in view
return self.dispatch(request, *args, **kwargs)
File "/Users/akulakov/envs/regproj/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in dispatch
return handler(request, *args, **kwargs)
File "/Users/akulakov/projects/regproj/htdocs/../htdocs/registration/views.py", line 122, in post
return super(RegisterView, self).post(request, *a, **kw)
File "/Users/akulakov/envs/regproj/lib/python2.7/site-packages/django/views/generic/edit.py", line 172, in post
return super(BaseCreateView, self).post(request, *args, **kwargs)
File "/Users/akulakov/envs/regproj/lib/python2.7/site-packages/django/views/generic/edit.py", line 138, in post
return self.form_valid(form)
File "/Users/akulakov/projects/regproj/htdocs/../htdocs/registration/views.py", line 111, in form_valid
formset.save()
File "/Users/akulakov/projects/regproj/htdocs/registration/formset.py", line 107, in save
registrant.send_confirmation()
File "/Users/akulakov/projects/regproj/htdocs/registration/models.py", line 1011, in send_confirmation
self._send_confirmation()
File "/Users/akulakov/projects/regproj/htdocs/registration/models.py", line 1049, in _send_confirmation
util.send_email(tpl_key, '', to, subject, form_data)
File "/Users/akulakov/projects/regproj/htdocs/registration/util.py", line 122, in send_email
equeue.queue(template_key, to, from_, subject, form_data, **kw)
File "/Users/akulakov/projects/regproj/htdocs/registration/emailqueue.py", line 81, in queue
raise RegEmailError(response)

我以前从没碰到过这个。。我试过调试,看起来“e”是RegEmailError类型的正确异常,只有一个RegEmailError 在一个地方的代码库中定义。你知道吗


Tags: inpyselfsendlineregistrationusersviews

热门问题