可使用 except: 捕獲任何異常,包括 SystemExit 和 KeyboardInterupt,不過這樣不便於程序的調試和使用socket
最簡單的狀況是捕獲 urllib2.URLErrorurl
try: urllib2.urlopen("http://example.com", timeout = 1) except urllib2.URLError, e: raise MyException("There was an error: %r" % e)
如下代碼對超時異常進行了捕獲spa
import urllib2 import socket class MyException(Exception): pass try: urllib2.urlopen("http://example.com", timeout = 1) except urllib2.URLError, e: if isinstance(e.reason, socket.timeout): raise MyException("There was an error: %r" % e) else: # reraise the original error raise