特定异常的处理程序

时间:2012-08-30 06:33:00

标签: python django

我创建了一个特定的异常类

class myException(Exception):
    ...

我在某个特定视图上引发了异常

在django已经存在一种方法来处理urls.py中的一些异常(如Http404,Http403 ......)

handler404 = 'myViews.error.not_found'

我想做的是处理myException,以便重定向到另一个视图。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您应该可以通过为项目编写和注册自定义Django middleware class来实现此目的。

在中间件的process_exception方法中,检查您感兴趣的异常并生成适当的HttpResponse:

def process_exception(self, request, exception):
    if isinstance(exception, myException):
        return http.HttpResponse("myException raised")
    else:
        # Perform standard error handling for other exceptions:
        return None