diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-01-10 16:09:55 +0200 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-01-11 00:55:08 +0200 |
commit | 5388a3c29a5f25aa195c5e4f04aae334a8c08bc4 (patch) | |
tree | 7b119fd84c81fecd380860a9f7c30d46709ae872 | |
parent | bab5cfb34f6b1ed4b16c24221479c20f5ed71c4f (diff) | |
download | micropython-5388a3c29a5f25aa195c5e4f04aae334a8c08bc4.tar.gz micropython-5388a3c29a5f25aa195c5e4f04aae334a8c08bc4.zip |
Crude attempt to implement RAISE_VARARGS (with args=1 so far only).
-rw-r--r-- | py/vm.c | 7 | ||||
-rw-r--r-- | tests/basics/tests/try1.py | 5 |
2 files changed, 12 insertions, 0 deletions
@@ -474,6 +474,13 @@ bool mp_execute_byte_code_2(const byte **ip_in_out, mp_obj_t *fastn, mp_obj_t ** assert(exc_sp == &exc_stack[0] - 1); return false; + case MP_BC_RAISE_VARARGS: + unum = *ip++; + assert(unum == 1); + obj1 = POP(); + nlr_jump(obj1); + return false; + case MP_BC_YIELD_VALUE: nlr_pop(); *ip_in_out = ip; diff --git a/tests/basics/tests/try1.py b/tests/basics/tests/try1.py index b3b85372d7..56d3075041 100644 --- a/tests/basics/tests/try1.py +++ b/tests/basics/tests/try1.py @@ -4,3 +4,8 @@ try: x.a() except: print(x) + +try: + raise IndexError +except IndexError: + print("caught") |