How to use the exec statement
aleax at aleax.it
Mon Oct 7 18:31:06 CEST 2002
> Well, I could preprocess the string that is given to exec. I
> am thinking about introducing '<---' instead of '=' anyway.
> Then only assignments, function calls and function
> definitions would be allowed.
You'll have to do a lot of special-purpose checks to
ensure e.g. that I don't do
LOOKS LIKE a function call, but since 'raise' is a
keyword, it's actually a raise statement and it's going
to raise a string-exception:-).
> But even so, I cannot catch every error. But I could use
> except without a name, couldn't I? like in
> def f(x,y):
> return x/y
> print 'error'
> Then if I split the string that is give to exec I can even
> tell in which line the error occured.
> Is this sensible?
Not really, but there's not much else you can do:-(.
You don't need to split the string - as part of the
traceback (which you can get inside the handler) you
get the line-number on which the exception was raised.
More information about the Python-list