前言:
异常处理。
目录:
1. 异常处理概述
程序在运行的时候难免会遇到各种各样的问题,
如果没有异常处理,那么程序遇到问题的时候就可能奔溃,
这样就非常耗时又麻烦了,
为了避免这种情况发生,就需要开发一个具备异常处理的程序。
2. 常见状态码及含义
状态码 | 解释 |
---|---|
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: 服务器不支持实现请求所需要 |
3. URLError与HTTPError
两者都是异常处理的类,HTTPError 是 URLError 的子类,
HTTPError 有异常状态码与异常原因,
URLError 没有异常状态码,
所以在处理的时候,不能直接使用 URLError 直接代替 HTTPError ,
如果要代替,必须要判断是否有状态码属性。
4. 异常处理实战
URLError 出现的原因:
- 连接不上服务器
- 远程url不存在
- 无网络
- 触发 HTTPError
代码:
我们使用 try except 来捕获异常
import urllib.request
import urllib.error # 导入异常捕获模块
try:
urllib.request.urlopen("http://")
except urllib.error.URLError as e:
if hasattr(e,"code"): # 判断有没有状态码
print(e.code)
if hasattr(e,"reason"): # reason 是 URLError类中的一个属性,返回错误的原因
print(e.reason)
总结
异常处理就先到这里吧。