Django-捕获异常
问题内容:
这可能是一个Python新手问题…
try:
#do something
except:
raise Exception('XYZ has gone wrong...')
即使DEBUG = True,我也不希望这raise Exception
给我黄页。我实际上是想通过将用户重定向到错误页面或显示错误来处理异常(在页面顶部给出CSS错误消息…)
我该如何处理?有人可以指导我吗?如果仅提高它,我将得到黄色的调试页面(再次,当DEBUG = True时,我不希望某些异常通过显示调试页面来阻止站点运行)。
如何在views.py中处理这些异常?
谢谢。
问题答案:
您在这里有三个选择。
- 提供404处理程序或500处理程序
- 在代码的其他地方捕获异常并进行适当的重定向
- 提供带有
process_exception
实施的自定义中间件
中间件示例:
class MyExceptionMiddleware(object):
def process_exception(self, request, exception):
if not isinstance(exception, SomeExceptionType):
return None
return HttpResponse('some message')