diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-01-31 21:33:07 +0200 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-01-31 21:33:07 +0200 |
commit | c9887cbbe2aed0c96228832757142f501fc6e1ac (patch) | |
tree | e10ee15ea899159062b5fc20862437b94401f4f5 /tests/basics/try-finally1.py | |
parent | 8519342c1a542c44ae98c49bb1eb02d50178bcaa (diff) | |
download | micropython-c9887cbbe2aed0c96228832757142f501fc6e1ac.tar.gz micropython-c9887cbbe2aed0c96228832757142f501fc6e1ac.zip |
Add basic try-finally testcase.
It's mildly suprising these work without further changes to exception
handling code (the only change required was to handle SETUP_FINALLY).
Diffstat (limited to 'tests/basics/try-finally1.py')
-rw-r--r-- | tests/basics/try-finally1.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/basics/try-finally1.py b/tests/basics/try-finally1.py new file mode 100644 index 0000000000..2416f6d188 --- /dev/null +++ b/tests/basics/try-finally1.py @@ -0,0 +1,71 @@ +print("noexc-finally") +try: + print("try") +finally: + print("finally") + +print("noexc-finally-finally") +try: + print("try1") + try: + print("try2") + finally: + print("finally2") +finally: + print("finally1") +print() + +print("noexc-finally-func-finally") +def func2(): + try: + print("try2") + finally: + print("finally2") + +try: + print("try1") + func2() +finally: + print("finally1") +print() + + +print("exc-finally-except") +try: + print("try1") + try: + print("try2") + foo() + except: + print("except2") +finally: + print("finally1") +print() + +print("exc-finally-except-filter") +try: + print("try1") + try: + print("try2") + foo() + except NameError: + print("except2") +finally: + print("finally1") +print() + + +print("exc-except-finally-finally") +try: # top-level catch-all except to not fail script + try: + print("try1") + try: + print("try2") + foo() + finally: + print("finally2") + finally: + print("finally1") +except: + print("catch-all except") +print() |