On 15 Nov 2005 11:26:23 -0800 in comp.lang.python, "py"
<[EMAIL PROTECTED]> wrote:

>Dan Sommers wrote:
>> Just do it.  If one of foo's callers passes in a non-iterable, foo will
>> raise an exception, and you'll catch it during testing
>
>That's exactly what I don't want.  I don't want an exception, instead I
>want to check to see if it's an iterable....if it is continue, if not
>return an error code.  I can't catch it during testing since this is
>going to be used by other people.

Then catch the exception yourself.

   >>> def foo2(i):
        try:
                for j in i:
                        print j
                print "Success!"
                return 0
        except TypeError, e:
                print "Bad foo.  No donut.", e
                return -1

        
   >>> joe = foo2([1,3,5,7,9])
   1
   3
   5
   7
   9
   Success!
   >>> print joe
   0
   >>> bob = foo2(2)
   Bad foo.  No donut. iteration over non-sequence
   >>> print bob
   -1
   >>> 

Regards,
                                        -=Dave

-- 
Change is inevitable, progress is not.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to