Hi everyone, I have a question about using urllib2.
I like urllib2 better than urllib at least in part because it has more elaborate support for handling errors: there is built in support for URLError (for faulty urls) and HTTPError (for http errors that might originate from, say, passing an invalid stock-ticker in the program below). However I can get neither to work. I'm attaching below the (very short) code: can anyone point out what I'm doing wrong? Now, if I replace the URLError and HTTPError with IOError (the class from which both URLError and HTTPError inherit), the program works fine. Why is it that I can call the generic IOError class, but none of the Error classes derived from that? These are clearly defined in the urllib2 manual. Very confused... Here's the code: import urllib2 # read stock information from yahoo finance for Traget (TGT) goodTicker = 'TGT' # program works with this badTicker = 'TGTttttttt' # python doesn't understand either HTTPError or URLError with this url = "http://ichart.finance.yahoo.com/table.csv?s=" + badTicker try: handle = urllib2.urlopen(url) # this does not work except HTTPError, e: print "There was an http error" print e # this also does not work except URLError, e: print "There is a problem with the URL" print e exit(1) #this works except IOError, e: print "You have an IOError" print e text = handle.readlines()[:20] for line in text: print line -- http://mail.python.org/mailman/listinfo/python-list