On Fri, Apr 10, 2020 at 8:05 PM Greg Ewing <[email protected]> wrote:
>
> On 10/04/20 8:30 am, Soni L. wrote:
> > Sometimes, you have an API:
> >
> >      @abc.abstractmethod
> >      def get_property_value(self, prop):
> >          """Returns the value associated with the given property.
> >
> >          Args:
> >              prop (DataProperty): The property.
> >
> >          Returns:
> >              The value associated with the given property.
> >
> >          Raises:
> >              PropertyError: If the property is not supported by this config
> >              source.
> >              LookupError: If the property is supported, but isn't
> > available.
> >              ValueError: If the property doesn't have exactly one value.
> >          """
> >          raise PropertyError
>
> This doesn't really look like a Python API. It's fairly rare in
> Python for exceptions to be used to indicate anything other than
> "something unexpected went wrong".

StopIteration wants to say hello :)

> In your unpacking example, the ValueError isn't really intended
> as something to be caught under normal circumstances. The assumption
> is that you'll know how many items to expect when you unpack something,
> and if you don't get that many, then you have a bug.
>
> You could advocate for unpacking to use a more specific exception
> to facilitate catching it, but I think most people will consider
> your use case to be quite rare.
>

Or alternatively, it may be worth separating the function call from
the unpacking. But that's not common enough to really need to deal
with.

ChrisA
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/DJLKUOEXH6OTGQD5IVNDXF42AGNWQ5F2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to