URLError

异常处理:

  • URLError

import urllib.request
import urllib.error
try:
    urllib.request.urlopen("URL")
except urllib.error.URLError as e:
    #打印异常code
    print(e.code)
    #打印异常原因
    print(e.reason)

  • HTTPError

import urllib.request
import urllib.error
try:
    urllib.request.urlopen("URL")
except urllib.error.HTTPError as e:
    #打印异常code
    print(e.code)
    #打印异常原因
    print(e.reason)
  • 常见状态码:
200

OK

一切正常

301

Moved Permanently

重定向到新的URL,永久性

302

Found

重定向到临时的URL,临时性

304

Not Modified

请求的资源未更新

400

Bad Request

非法请求

401

unauthorized

请求未经授权

403

Forbidden

禁止访问

404

Not Found

没有找到对应网页

500

Internal Server Error

服务器内部出现错误

501

Not Implemented

服务器不支持实现请求所需要的功能

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HTTPError:无法处理的异常

  • 连接不上服务器
  • 远程URL不存在
  • 无网络引起的异常

 

在实际处理异常时,我们并不知道具体是什么异常。此时我们可以优化相应的代码,先让其用HTTPError子类进行处理,若无法处理,再进行URLError处理。

import urllib.request
import urllib.error
try:
    urllib.request.urlopen("网址")
except urllib.error.URLError as e:
    if hasatter(e,"code"):
        print(e,code)
    if hasatter(e,"reason"):
        print(e,reason)

 

  最后值得注意的一点是,如果想用HTTPError和URLError一起捕获异常,那么需要将HTTPError放在URLError的前面,因为HTTPError是URLError的一个子类。如果URLError放在前面,出现HTTP异常会先响应URLError,这样HTTPError就捕获不到错误信息了。
 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值