urllib的error模块定义由request模块产生的错误,出现问题request就会抛出error模块定义的异常
1.URLError :它来自urllib库中的error模块,它继承自OSError类,是error异常模块的基础类,由request模块产生的异常都可以通过URLError类来处理,而且URLError具有一个属性reason(用于返回错误的原因)
2.HTTPError:它是URL的子类,专门用于处理HTTP请求错误,如认真请求失败。它有三个属性:code、reason、headers
code:返回HTTP状态码,如404网页不存在,505服务器内部错误等
reason:和父类一样,返回错误原因。
headers:返回请求头


这里捕获了HTTPError异常,输出了reason(原因)、code(状态码)、headers(头部信息)属性,而except error.URLError as e 将在不是HTTPError异常的情况下捕获,输出错误原因。由于URLError是HTTTPError的父类,捕获错误时会先捕获子类的错误,再去捕获父类的错误。在一定情况下,reason输出也可能是一个对象,例如超时异常处理时
2498

被折叠的 条评论
为什么被折叠?



