[Python-Dev] PEP 362 Third Revision (original) (raw)

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