异常处理

URLError

当urlopen无法处理一个响应的时候,就会引发URLError异常。 通常,没有网络连接或者对方服务器压根儿不存在的情况下,就会引发这个异常。同时,这个URLError会伴随一个reason属性,用于包含一个由错误编码和错误信息组成的元组。

HTTPError

HTTPError是URLError的子类,服务器上每一个HTTP的响应都包含一个数字的“状态码”。有时候状态码会指出服务器无法完成的请求类型,一般情况下Python会帮你处理一部分这类响应(例如,响应的是一个“重定向”,要求客户端从别的地址来获取文档,那么urllib会自动为你处理这个响应。);但是呢,有一些无法处理的,就会抛出HTTPError异常。这些异常包括典型的:404(页面无法找到),403(请求禁止)和401(验证请求)。

因为 Python 默认会自动帮你处理重定向方面的内容(状态码 300 ~ 399 范围),状态码 100 ~ 299 的范围是表示成功,所以你需要关注的是 400 ~ 599 这个范围的状态码(因为它们代表响应出了问题)。其中,出现4xx的状态码,说明问题来自客户端,就是你自己哪里做错了;出现5xx的状态码,那就表示与你无关了,是来自服务器的问题。

当出现一个错误的时候,服务器返回一个HTTP错误号和一个错误页面。你可以使用HTTPError实例作为页面返回的响应对象。它同样也是拥有像read(),geturl()和info()这类方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值