On Fri, 25 Dec 2009 17:29:48 +0200, Dotan Barak wrote: > Hi. > > I'm trying to evaluate a string and getting a NameError (it is expected, > since the variable my_number wasn't provided in the "locals" > dictionary). > > <--snip start--> > >>> eval("my_number < 10", {"__builtins__":None}, {}) > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "<string>", line 0, in ? > NameError: name 'my_number' is not defined > <--snip end--> > > My question is: how can i know which variable name / symbol causes the > NameError exception? > In my example, this symbol is my_number. > > Using that information, I will be able to print a nice error message to > the user.
You mean just like the error message that Python already prints? NameError: name 'my_number' is not defined Don't waste your time re-inventing the wheel. But if you do insist on reinventing the wheel, here are some tools to help you: try: my_number except NameError, e: print str(e) print type(e) print e.args -- Steven -- http://mail.python.org/mailman/listinfo/python-list