summaryrefslogtreecommitdiff
path: root/paste/httpexceptions.py
diff options
context:
space:
mode:
authorianb <devnull@localhost>2005-11-05 04:50:59 +0000
committerianb <devnull@localhost>2005-11-05 04:50:59 +0000
commitf4bd738b1cdba4a11e64773a3d4d016cb8e08fa8 (patch)
tree4ed46924b12aa5879b0c6103f7950e33678c917f /paste/httpexceptions.py
parent58c5f2dd2c8a156327c5c0d7ac4df13fb7bca41b (diff)
downloadpaste-f4bd738b1cdba4a11e64773a3d4d016cb8e08fa8.tar.gz
Add a hook to the error middleware to ignore (re-raise) exceptions in env[paste.expected_exceptions]; also made httpexceptions put this in. This way if httpexceptions wraps error middleware, it'll still work
Diffstat (limited to 'paste/httpexceptions.py')
-rw-r--r--paste/httpexceptions.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/paste/httpexceptions.py b/paste/httpexceptions.py
index ce3ab79..b01be07 100644
--- a/paste/httpexceptions.py
+++ b/paste/httpexceptions.py
@@ -225,13 +225,17 @@ def middleware(application, global_conf=None):
"""
def start_application(environ, start_response):
+ environ.setdefault('paste.expected_exceptions', []).append(
+ HTTPException)
app_started = []
def checked_start_response(status, headers, exc_info=None):
app_started.append(None)
return start_response(status, headers, exc_info)
try:
- return application(environ, checked_start_response)
+ v = application(environ, checked_start_response)
+ environ['paste.expected_exceptions'].remove(HTTPException)
+ return v
except HTTPException, e:
if environ.get('paste.debug_suppress_httpexceptions'):
raise