handles exceptions in containment callbacks

This commit is contained in:
Martinez 2017-05-02 22:39:27 +02:00
parent e6652b6783
commit e699be5c6d
3 changed files with 10 additions and 3 deletions

View file

@ -813,6 +813,12 @@ class Main:
for i, (cb, ctx) in enumerate(self.uncontained_exception_callbacks):
self.print("(%d/%d) %s" %(i+1, l, cb.__name__))
cb(*ctx)
try:
cb(*ctx)
except Exception as e:
self.print("(%d/%d) <r>%s failed<.> (<R>%s<.>)" %(i+1, l, cb.__name__, e.__class__.__name__), self.print.tl.epic, end=":\n")
exc_info = sys.exc_info()
traceback.print_exception(*exc_info)
del exc_info
self.print("containment callbacks executed", self.print.tl.done)