id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 4701,"If a view raises a SystemExit exception, the BaseHandler should allow the exception to propagate up the stack (I think)",Chris Wagner ,nobody,"What the {{{BaseHandler}}} does at present, is this: {{{ except SystemExit: pass # See http://code.djangoproject.com/ticket/1023 }}} What I expect it to do is this: {{{ except SystemExit: raise }}} I found this to be a problem when testing. I, at one point, placed a ""{{{raise SystemExit()}}}"" in one of my views, for debugging purposes. Later on, (well after forgetting about that ""{{{raise SystemExit()}}}"" I placed earlier) I was having a test failure, like this: {{{ ... File ""/usr/local/lib/python2.5/site-packages/django/test/client.py"", line 44, in __call__ response = middleware_method(request, response) File ""/usr/local/lib/python2.5/site-packages/django/contrib/sessions/middleware.py"", line 87, in process_response patch_vary_headers(response, ('Cookie',)) File ""/usr/local/lib/python2.5/site-packages/django/utils/cache.py"", line 105, in patch_vary_headers if response.has_header('Vary'): AttributeError: 'NoneType' object has no attribute 'has_header' }}} Although the problem was a bit more clear once I had a look at the view that was under test (duh), the problem was not at all clear from the failing test's error message. The raised {{{SystemExit}}} exception should have caused the test to halt execution, however, since the {{{BaseHandler}}} essentially ignores the {{{SystemExit}}} exception, the {{{BaseHandler.get_response()}}} method ends up returning {{{None}}} (implicitly, because nothing else is returned). I suspect this could cause pain elsewhere (if only when debugging); it just doesn't seem right to ""{{{pass}}}"" on such an exception Browsing over #1023, it doesn't look as if there was ever a clear answer as to why using {{{pass}}} was chosen over using {{{raise}}}, to deal with this special-case exception.",,closed,django-admin.py runserver,dev,,fixed,,,Unreviewed,1,0,0,0,0,0