NavyJay wrote:
I have a simple for-loop, which instantiates a class object each
iteration.  As part of my class constructor, __init__(), I check for
valid input settings.  If there is a problem with this iteration, I
want to abort the loop, but equivalently 'continue' on in the for-loop.

I can't use 'break' or 'continue' in a class method, nor can I return a
boolean value from __init__() to check for errors within the for-loop.
How would I be able to stop the current iteration and continue with the
next after reporting an error?

You have the right idea in the subject header: raise an exception. Something along the lines of this:


class Foo(object):
    def __init__(self, value):
        if value > 10:
            raise ValueError("Value must be under 10, was %s." % value)
        else:
            self.value = value

for value in [1, 4, 10, 7, 15, 13, 6, 3]:
    try:
        obj = Foo(value)
    except ValueError, ex:
        print str(ex)
        continue
    # Do stuff with obj here
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to