John Gordon wrote: > In <mailman.230.1313780957.27778.python-l...@python.org> Yingjie Lin > <yingjie....@mssm.edu> writes: > >> try: >> response = urlopen(urljoin(uri1, uri2)) >> except urllib2.HTTPError: >> print "URL does not exist!" > >> Though "urllib2.HTTPError" is the error type reported by Python, Python >> doesn't recognize it as an error type name. I tried using "HTTPError" >> alone too, but that's not recognized either. > > Have you imported urllib2 in your code?
Good question. If Python "doesn't recognize it as an error type name", there is a reason for that. Exceptions are exactly the same as every other name: >>> foo.spam Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'foo' is not defined >>> urllib2.HTTPError Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'urllib2' is not defined >> Does anyone know what error type I should put after the except >> statement? or even better: is there a way not to specify the error >> types? Thank you. > > You can catch all exceptions by catching the base class Exception: Except that is nearly always poor advice, because it catches too much: it hides bugs in code, as well as things which should be caught. You should always catch the absolute minimum you need to catch. -- Steven -- http://mail.python.org/mailman/listinfo/python-list