1

我想使用中间件来处理所有项目中的一些特殊异常。但是当引发异常时几乎从不调用中间件,我不明白这种行为的原因。

中间件类:

import logging
log = logging.getLogger(__name__)

class ExceptionMiddleware(object):
    def process_exception(self, request, exception):
        log.error("Сaught exception: %s"% exception)

我的中间件类:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
     # Exception middleware
    'middleware.ExceptionMiddleware',
 )

也许我找到了一个原因。特定类的实例是作为全局值从所有视图中创建的,并且在调用某些视图之前引发异常。那么问题的另一部分,我如何才能捕捉到这些异常?

4

0 回答 0