Mark Dickinson added the comment: I was wondering how the TypeError got there in the first place. Diving into the history is instructive: changeset cdfdd5359411 modified the exception message:
taniyama:cpython mdickinson$ hg log -r19719 changeset: 19719:cdfdd5359411 branch: legacy-trunk user: Tim Peters <tim.pet...@gmail.com> date: Wed Sep 05 06:24:58 2001 +0000 summary: Make the error msgs in our pow() implementations consistent. Before that change, the code looked like this: if (x != Py_None) { PyErr_SetString(PyExc_TypeError, "integer pow() arg " "3 must not be specified when arg 2 is < 0"); return NULL; } >From that point of view the TypeError makes more sense: it's complaining about >the wrong number of arguments rather than the negative value. The current >message changes the perspective, and I agree that ValueError makes more sense. Tim: any objections to changing the exception type from TypeError to ValueError for Python 3.5? I'd prefer not to change it for 2.7 or 3.4: there's an (admittedly probably quite low) risk of code breakage, and little real gain to offset that breakage. ---------- nosy: +tim.peters _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue21193> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com