Exception handling in Python 3.x
Ethan Furman
ethan at stoneleaf.us
Mon Dec 13 15:44:28 EST 2010
Please don't top-post.
Rob Richardson wrote:
>> -----Original Message-----
>>
>>
>> I missed the start of this discussion but there are two simpler ways:
>>
>> def func(iterable):
>> for x in iterable:
>> print(x)
>> return
>> raise ValueError("... empty iterable")
>>
>> Or using 3.x's next's optional second argument:
>>
>> _nonext=object()
>> def func(iterable):
>> x = next(iter(iterable), _nonext)
>> if x is _nonext:
>> raise ValueError("... empty iterable")
>> print(x)
> Arnaud,
>
> Wouldn't your first suggestion exit after the first element in
> iterable?
No, it hit's return instead.
> And would your second suggestion throw an exception after normal
> processing of all elements in the interator?
Looks like the second solution doesn't process the entire iterable, just
it's first element.
~Ethan~
More information about the Python-list
mailing list