Django

Code

Changeset 7988

Show
Ignore:
Timestamp:
07/19/08 13:49:49 (3 months ago)
Author:
mtredinnick
Message:

Fixed #7471 -- If the 400 response handler raises an exception, pass control to
the 500 handler (if that then raises an exception, it's just not your day).

Patch from Leah Culver.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/handlers/base.py

    r7928 r7988  
    108108                return debug.technical_404_response(request, e) 
    109109            else: 
    110                 callback, param_dict = resolver.resolve404() 
    111                 return callback(request, **param_dict) 
     110                try: 
     111                    callback, param_dict = resolver.resolve404() 
     112                    return callback(request, **param_dict) 
     113                except: 
     114                    return self.handle_uncaught_exception(request, resolver, sys.exc_info()) 
    112115        except exceptions.PermissionDenied: 
    113116            return http.HttpResponseForbidden('<h1>Permission denied</h1>') 
     
    119122            exc_info = sys.exc_info() 
    120123            receivers = dispatcher.send(signal=signals.got_request_exception, request=request) 
    121  
    122             if settings.DEBUG_PROPAGATE_EXCEPTIONS: 
    123                 raise 
    124124            return self.handle_uncaught_exception(request, resolver, exc_info) 
    125125 
     
    136136        from django.conf import settings 
    137137        from django.core.mail import mail_admins 
     138 
     139        if settings.DEBUG_PROPAGATE_EXCEPTIONS: 
     140            raise 
    138141 
    139142        if settings.DEBUG: