两个都是urllib.error模块下处理异常的类。HTTPError是URLError的子类,有异常状态码和异常原因。经过处理的URLError可以代替HTTPError。
URLError不被触发的情况
- 连不上服务器 或 没有网络
- 不存在该URL
- 触发了HTTPError
处理的URLError
import urllib.request
import urllib.error
#异常处理的try-except
try:
urllib.erquest.urlopen("http://blob.csdn.net")
except URLError as e:
if hasattr(e, "code") #是否有状态码
print(e.code)
if hasattr(e, "reason") #是否有异常原因
print(e.reason)
常见状态码
200 | 请求正常 |
301 | 永久性的重定向到新URL |
302 | 非永久性的重定向 |
304 | 请求的资源没更新 |
400 | 非法请求 |
401 | 请求未经授权 |
403 | 禁止访问(伪装浏览器解决) |
404 | 没有对应页面 |
500 | 服务器内部错 |
501 | 不支持实现请求功能 |