[Python-Dev] PEP 362 Third Revision
Steven D'Aprano
steve at pearwood.info
Fri Jun 15 23:48:19 CEST 2012
Yury Selivanov wrote:
> On 2012-06-14, at 4:53 PM, Antoine Pitrou wrote:
>> On Wed, 13 Jun 2012 22:52:43 -0400
>> Yury Selivanov <yselivanov.ml at gmail.com> wrote:
>>
>>> * bind(\*args, \*\*kwargs) -> BoundArguments
>>> Creates a mapping from positional and keyword arguments to
>>> parameters. Raises a ``BindError`` (subclass of ``TypeError``)
>>> if the passed arguments do not match the signature.
>> Why a dedicated exception class? TypeError is good enough, and the
>> proliferation of exception classes is a nuisance.
>
>
> Agree. Will fix this.
It's not broken. Within reason, more specific exceptions are better than less
specific.
I have always considered it a wart that there was no supported way to
programmatically distinguish between (say) len(42) and len("a", "b"). Both
raise TypeError. Why is the second case a type error? It has nothing to do
with the type of either len, "a" or "b".
The introduction of BindError will allow functions to raise a more specific,
and less misleading, exception when they are called with the wrong number of
arguments, or invalid keywords, etc.
--
Steven
More information about the Python-Dev
mailing list