异常常见状态码含义:
- 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与URLError
HTTPError是URLError的子类,HTTPError有异常状态码与异常原因,URLError没有异常状态码,所以URLError不能代替HTTPError,否则,需判断是否有状态码属性。
URLError 产生情况:
- 连接不上服务器
- 远程URL不存在
- 无网络
- 触发HTTPError子类
import urllib.error
import urllib.request
try:
urllib.request.urlopen('http://blog.csdn.net')
except urllib.error.URLError as e: #URLError代替HTTPError先判断是否有状态码
if hasattr(e,"code"): #判读是否有状态码
print(e.code)
if hasattr(e,'reason'):
print(e.reason)