Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """ Test script for the HandlerChain.
- From here we can see the output exception after HandlerChain handled.
- """
- from exceptiongroup import HandlerChain, ExceptionGroup
- chain = HandlerChain()
- def raise_error_with_context():
- raise ZeroDivisionError("Fake zero division error")
- with chain:
- try:
- raise RuntimeError("Runtime error")
- except RuntimeError as e:
- e1 = e
- try:
- raise ValueError("ValueError error2")
- except ValueError as e:
- e2 = e
- @chain.handle(RuntimeError)
- def handler2(exc):
- raise exc
- raise ExceptionGroup("exception group", [e1, e2], [str(e1), str(e2)])
- # Traceback (most recent call last):
- # File "handler.py", line 30, in <module>
- # raise ExceptionGroup("exception group", [e1, e2], [str(e1), str(e2)])
- # File "/Users/chenhongze/projects/exceptiongroup/exceptiongroup/_tools.py", line 147, in __exit__
- # raise group
- # exceptiongroup.ExceptionGroup: <ExceptionGroup: RuntimeError('Runtime error')>, <ExceptionGroup: ValueError('ValueError error2')>
- # RuntimeError('Runtime error'):
- # Traceback (most recent call last):
- # File "handler.py", line 30, in <module>
- # raise ExceptionGroup("exception group", [e1, e2], [str(e1), str(e2)])
- # exceptiongroup.ExceptionGroup: RuntimeError('Runtime error')
- # Runtime error:
- # Traceback (most recent call last):
- # File "handler.py", line 17, in <module>
- # raise RuntimeError("Runtime error")
- # RuntimeError: Runtime error
- # ValueError('ValueError error2'):
- # Traceback (most recent call last):
- # File "handler.py", line 30, in <module>
- # raise ExceptionGroup("exception group", [e1, e2], [str(e1), str(e2)])
- # exceptiongroup.ExceptionGroup: ValueError('ValueError error2')
- # ValueError error2:
- # Traceback (most recent call last):
- # File "handler.py", line 22, in <module>
- # raise ValueError("ValueError error2")
- # ValueError: ValueError error2
Add Comment
Please, Sign In to add comment