异常中间件
如果Django调用视图函数的过程中发生了异常,将调用异常中间件。
一个异常中间件应当实现process_exception()方法,其原型如下:
process_exception(request,exception)
同样,异常中间件应当返回None或一个HttpResponse对象。如果返回的是一个 HttpResponse对象,那么将继续执行后续的模板响应中间件、响应中间件;如果 返回的是一个None,那么Django将跳过后续环节,直接调用默认的异常处理。
如果有多个异常中间件,那么Django将按照它们在配置对象的MIDDLEWARE_CLASSES 属性中注册的逆序执行。例如上图中,我们定义了三个异常中间件A、B和C。那么, 当视图函数出现异常时,Django将先执行C,如果C返回None,那么继续执行B,如果B也返回None, 那么继续执行A。
修改示例代码中的异常中间件,让第一个执行的异常中间件接管异常。