猿问

在判断urllib.error的类型时,为什么要判断是否和socket.timeout类型一致?

try:
    response = urllib.request.urlopen("http://www.douyu.com", timeout=0.01)
    print(response.read())

except urllib.error.HTTPError as e:               
    print(e.code)

except urllib.error.URLError as e:
    if isinstance(e.reason, socket.timeout):  
        print('Time Out!')

主要对socket.timeout不理解,请各位大佬指教

ZeroS329
浏览 1340回答 1
1回答

习惯受伤

URLError 中有很多类型的异常,而 socket.timeout 只是其中一种,所以用 isinstance(e.reason, socket.timeout) 来判断,对超时这种异常单独处理
随时随地看视频慕课网APP

相关分类

Python
我要回答