On Fri, Jul 2, 2010 at 10:35 PM, Steven D'Aprano <st...@pearwood.info> wrote:
> On Sat, 3 Jul 2010 11:39:07 am Greg Ewing wrote:
>> Stefan Behnel wrote:
>> > So, would it still be Python if it folded
>> >
>> >     1 + "1"
>> >
>> > into
>> >
>> >     raise TypeError()
>> >
>> > at compile time?
>>
>> It would have to be
>>
>>     raise TypeError("Exactly the message that would have been
>> produced at run time")
>
>
> Python doesn't make any guarantees about the message that exceptions
> display, so I don't think you need to match the message, just the
> exception. Anyone testing for specific exception messages is living in
> a state of sin and shouldn't complain when their code stops working. An
> implementation might choose to raise TypeError('is this the right place
> for an argument?') on alternate Tuesdays, and it would still meet the
> promises made by the language.
>

In theory it does not, in practice people rely on it. Besides, I would
not be overly happy if:

def f():
 return 1 + "1"

and

def g():
 a = 1
 return a + "1"

raise different messages
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to