Kent Johnson wrote:
> David Bear wrote:
> 
>>I'm attempting to use the cgi module with code like this:
>>
>>import cgi
>>fo = cgi.FieldStorage()
>># form field names are in the form if 'name:part'
>>keys = fo.keys()
>>for i in keys:
>>        try:
>>                item,value=i.split(':')
>>        except NameError, UnboundLocalError:
>>                print "exception..."
>>                item,value=(None,None)
>>return(item,value)
>>
>>However, the except block does not seem to catch the exception and an
>>unboundlocalerror is thrown anyway. What am I missing?
>>        
> 
> I don't know why you would get an UnboundLocalError from the above code, 
> but the correct syntax is
>    except (NameError, UnboundLocalError):

One possibility is that there are no keys. Then the loop finishes 
without ever setting item or values. This would give an unbound local 
error. I assume that the OP would have noticed that in the traceback, 
but perhaps he missed it.

OT, using i for the field namelike that makes my head hurt. Perhaps "for 
fieldname in fo.keys():" would be in order instead.

Regards,

-tim

> 
> Your code is binding the actual exception to the name "UnboundLocalError"
> 
> Kent

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to