Python 在Django中编写自定义异常

Python 在Django中编写自定义异常,python,django,exception-handling,Python,Django,Exception Handling,我试图实现的是创建一个类似于django.http.Http404的对象,我可以使用raise命令调用它 用例: def some_view(request): . . .. some code .. some_function() return HttpResponse("OK") def some_function(): . . .. some code .. if all_good: return

我试图实现的是创建一个类似于
django.http.Http404
的对象,我可以使用
raise
命令调用它

用例:

def some_view(request):
    .
    .
    .. some code ..
    some_function()

    return HttpResponse("OK")

def some_function():
    .
    .
    .. some code ..

    if all_good:
        return ok_object
    else:
        raise MyCustomException("Mmm.. WRONG!", status=415)
我试图实现的是让这个对象接收一些文本和一个状态代码,并让它将这些文本植入到我拥有的某个模板上

我想写我自己的对象,它只会返回某种响应,但这在上述嵌套用法的用例中不起作用。 另外,我不想检查
some_function
的返回对象的实例


这似乎是非常标准的做法,因此可以在django中附加自己的模板和异常操作,但我很难在谷歌上搜索到,我发现的只是如何自定义模板。

如果有帮助,试试这个,但没有太大帮助,一些答案是关于如何更改404上的文本,还有一些关于只返回一个自定义响应的问题,这在嵌套的case上不起作用:/另外,我不想使用中间件绑定到404代码听起来是正确的方法。在链接到的@arpitolanki的答案中,如果isinstance(异常,Http404):更改为
如果isinstance(异常,MyCustomException):
。如果您在Django 1.10+中使用的是
中间件
,那么您必须进行调整。@Alasdair检查返回对象的实例正是我不想做的。。。在一个真实的用例中,这可能是4层嵌套的,我不会每次都检查它发生了什么。。。必须有一种更优雅的方法来实现这一点:/我不是建议您在任何嵌套调用中检查返回值,而是在中间件中检查异常,就像在链接的答案中一样。