[Python-Dev] Re: More informative error messages

Gerrit Holl gerrit at nl.linux.org
Wed Oct 8 10:52:09 EDT 2003


[I'm not a regular poster, so I'll introduce myself shortly: I am a
 first-year Physics student without CS knowledge, have learned
 programming with Python a few years ago]
Gregory Smith wrote:
> > At the time the TypeError is constructed it shouldn't add serious
> > overhead to check if its a method or a function and subtract 1
> > accordingly.

Guido van Rossum replied:
> You'd think so, eh? Have you looked at the code? Have you tried to
> come up with a patch? Why do you think that in 13 years this hasn't
> been fixed if it's such a common complaint?

Would it be possible to have this code at IDE-level? E.g., is possible
for Idle to catch TypeError's and try to find out whether this is about
the number of arguments to a callable, and if so, try to find out whether
it is about a method or a function? This is of course a lot of overhead,
but since it is only for an interactive session, I think this is not a big
problem, or am I mistaken here?
Something like:
except TypeError, msg:
 if "takes exactly" in msg[0]: # something with tb_lasti?
 name = msg[0].split('(')[0]
 typ, val, tb = sys.exc_info()
 if name in tb.tb_frame.f_locals.keys():
 if 'instancemethod' in type(tb.tb_frame.f_locals[name]):
 # subtract 1
 else:
 # don't subtract 1
 else:
 # hmm, if it is a method, how do we find it?
 # etc.
 else:
 raise
It seems quite difficult to do so. It is certainly not always possible,
but is it worth the pain?
 
regards,
Gerrit Holl.
-- 
201. If he knock out the teeth of a freed man, he shall pay one-third
of a gold mina.
 -- 1780 BC, Hammurabi, Code of Law
--
Asperger Syndroom - een persoonlijke benadering:
	http://people.nl.linux.org/~gerrit/
Kom in verzet tegen dit kabinet:
	http://www.sp.nl/


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /