菜比之路

走菜比的路,让大牛说去吧
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

【python】raise_for_status()抛出requests.HTTPError错误

Posted on 2019-11-28 17:28  毕加索的ma  阅读(3739)  评论(0编辑  收藏  举报

1、首先看下面代码的运行情况

import requests

res = requests.get("https://www.csdn.net/eee", headers=headers, timeout=1)
res.encoding = "utf8"
print(res.status_code)
print(res.text)


运行结果:

 

 

可见requests请求可以正常返回状态码以及html文本,并没有报错。状态码只是服务器响应的结果,而错误的状态码也是正常的响应结果。

加上try…except…再看看:

没有任何异常!响应状态码为404!

加上raise_for_status(),观察运行结果:

 

 

此时被抛出404错误!
由此可见一个错误请求(一个 4XX 客户端错误,或者 5XX 服务器错误响应),我们必须要通过使用raise_for_status() 才能抛出异常!

加上try…except…

 

 


此时抛出的异常并被第一个 requests.HTTPError 异常捕获。