# encoding=utf-8
import socket
import urllib.request
import urllib.error
'''URLError
设置了超时时间是 1 秒,程序 1 秒过后服务器依然没有响应,于是抛出了 URLError 异常,它属于 urllib.error 模块,错误原因是超时。
'''
try:
responseForTimeout = urllib.request.urlopen('http://httpbin.org/get', timeout=0.001)
except urllib.error.URLError as e:
print(type(e.reason))
if isinstance(e.reason, socket.timeout):
print('TIME OUT')
try:
response = urllib.request.urlopen('http://www.baidu.com/index.htm')
except urllib.error.URLError as e:
print(e.reason)
'''程序没有直接报错,而是输出了如上内容,这样通过如上操作,我们就可以避免程序异常终止,同时异常得到了有效处理。'''
总结:
# 异常处理格式
try: ... except exception: ... else: ... finally: ...
# 抛出异常
raise exception