diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-05-23 11:41:22 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-05-23 11:41:22 -0400 |
commit | 90fcefdbff5a16c8b900e1b45e05853a8f7b5b4b (patch) | |
tree | 7551eddcbf6bbbeefadd42bf989b0aa81b031839 | |
parent | 91c9c024f32dd4dc0c336b8fa65b17542565649a (diff) | |
parent | cb9105d605730699f6302ab441755ceb02ee17ab (diff) | |
download | mako-90fcefdbff5a16c8b900e1b45e05853a8f7b5b4b.tar.gz |
Merge branch 'error_handler' of https://bitbucket.org/designst/mako/overview into t
-rw-r--r-- | mako/compat.py | 12 | ||||
-rw-r--r-- | mako/runtime.py | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/mako/compat.py b/mako/compat.py index e26b65b..fe277bb 100644 --- a/mako/compat.py +++ b/mako/compat.py @@ -68,6 +68,18 @@ else: fp.close() +if py3k: + def reraise(tp, value, tb=None, cause=None): + if cause is not None: + value.__cause__ = cause + if value.__traceback__ is not tb: + raise value.with_traceback(tb) + raise value +else: + exec("def reraise(tp, value, tb=None, cause=None):\n" + " raise tp, value, tb\n") + + def exception_as(): return sys.exc_info()[1] diff --git a/mako/runtime.py b/mako/runtime.py index d7b9681..31ad557 100644 --- a/mako/runtime.py +++ b/mako/runtime.py @@ -863,7 +863,7 @@ def _render_error(template, context, error): if template.error_handler: result = template.error_handler(context, error) if not result: - raise error + compat.reraise(*sys.exc_info()) else: error_template = exceptions.html_error_template() if context._outputting_as_unicode: |