Django-捕获异常

发布于 2021-01-29 16:27:38

这可能是一个Python新手问题…

try:
   #do something
except:
   raise Exception('XYZ has gone wrong...')

即使DEBUG = True,我也不希望这raise Exception给我黄页。我实际上是想通过将用户重定向到错误页面或显示错误来处理异常(在页面顶部给出CSS错误消息…)

我该如何处理?有人可以指导我吗?如果仅提高它,我将得到黄色的调试页面(再次,当DEBUG = True时,我不希望某些异常通过显示调试页面来阻止站点运行)。

如何在views.py中处理这些异常?

谢谢。

关注者
0
被浏览
89
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您在这里有三个选择。

    1. 提供404处理程序或500处理程序
    2. 在代码的其他地方捕获异常并进行适当的重定向
    3. 提供带有process_exception实施的自定义中间件

    中间件示例:

    class MyExceptionMiddleware(object):
        def process_exception(self, request, exception):
            if not isinstance(exception, SomeExceptionType):
                return None
            return HttpResponse('some message')
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看