On 5/2/2020 2:39 PM, Soni L. wrote:


On 2020-05-02 1:45 p.m., Steven D'Aprano wrote:
On Sat, May 02, 2020 at 01:20:01PM -0300, Soni L. wrote:
> > > On 2020-05-02 1:07 p.m., Steven D'Aprano wrote:
> >On Sat, May 02, 2020 at 12:50:19PM -0300, Soni L. wrote:
> >
> >> how about:
> >> > >> result = Foo.save()
> >> try:
> >>   x, y = result
> >> except ValueUnpackingError:
> >>   return ...
> >
> >If you do that, what benefit is ValueUnpackingError over just
> >ValueError?
> >
> >
> >
> unpacking (a generator) still doesn't wrap ValueError

Sorry, I don't understand that comment. What do you mean, "wrap"?

Unpacking a generator with too many values raises ValueError:

     py> a, b = (x for x in range(3))
     Traceback (most recent call last):
       File "<stdin>", line 1, in <module>
     ValueError: too many values to unpack (expected 2)

> and ValueError is > raised a lot more than ValueUnpackingError.

Why does that matter, and how does that relate to the specific code
sample given?

Given the line of code `x, y = result`, the only possible way ValueError
could be raised is if `result` has the wrong number of items when
unpacking. So what benefit does ValueUnpackingError bring to this
example?


or if iterating result raises ValueError.

consider:

def foo():
  yield from ()
  raise ValueError

iterator = foo()
x, y = iterator

you get a ValueError, but not a ValueUnpackingError.

And as has been said before, what if iterating raises a ValueUnpackingError?

Rather than go over the same ground yet again, I'll stop replying to this thread. I remain at -1 for adding this particular exception.

Eric
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/KIPMOMVSAQ67A36NQGSAK2CXPVUQ7QGC/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to