Catch down errors caused by tb_set_next. This fixes #22
authorArmin Ronacher <armin.ronacher@active-4.com>
Mon, 18 Apr 2011 14:27:14 +0000 (16:27 +0200)
committerArmin Ronacher <armin.ronacher@active-4.com>
Mon, 18 Apr 2011 14:27:14 +0000 (16:27 +0200)
jinja2/debug.py

index f1cc3bc3da6fcc752a42488bd2c032513e9828ab..2af2222322782c628697dbe7bfef661eb084559d 100644 (file)
@@ -45,7 +45,13 @@ class TracebackFrameProxy(object):
 
     def set_next(self, next):
         if tb_set_next is not None:
-            tb_set_next(self.tb, next and next.tb or None)
+            try:
+                tb_set_next(self.tb, next and next.tb or None)
+            except Exception:
+                # this function can fail due to all the hackery it does
+                # on various python implementations.  We just catch errors
+                # down and ignore them if necessary.
+                pass
         self._tb_next = next
 
     @property