Exception handling in Python 3.x

Rob Richardson Rob.Richardson at rad-con.com
Mon Dec 13 14:56:02 EST 2010


Arnaud,

Wouldn't your first suggestion exit after the first element in iterable?
And would your second suggestion throw an exception after normal
processing of all elements in the interator?

RobR

-----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
-- 
http://mail.python.org/mailman/listinfo/python-list



More information about the Python-list mailing list