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