try except inside exec

Michele Petrazzo michele.petrazzo at REMOVE_me_unipex.it
Fri May 29 10:21:03 EDT 2009


Hi all,
I want to execute a python code inside a string and so I use the exec
statement. The strange thing is that the try/except couple don't catch
the exception and so it return to the main code.
Is there a solution to convert or make this code work?

Thanks,
Michele

My code:

STR = """
err = 0
try:
   def a_funct():
     1/0
except:
   import traceback
   err = traceback.format_exc()
"""

env = {}
exec STR in env
env["a_funct"]()
print env["err"]


My error:
   File "tmp/test_exec.py", line 14, in <module>
     env["a_funct"]()
   File "<string>", line 5, in a_funct
ZeroDivisionError: integer division or modulo by zero



More information about the Python-list mailing list