11.2.2 检查错误

正如你看到的,Response  对象有一个 status_code  属性,可以检查它是否等于
requests.codes.ok,了解下载是否成功。检查成功有一种简单的方法,就是在 Response对象上调用 
raise_for_status()方法。如果下载文件出错,这将抛出异常。如果下载成功,就什么也不做。在交互式环境中输入以下代码:
>>>  res  =  requests.get('http://inventwithpython.com/page_that_does_not_exist')
>>>  res.raise_for_status()
Traceback  (most  recent  call  last):
File  "<pyshell#138>",  line  1,  in  <module> res.raise_for_status()
File  "C:\Python34\lib\site-packages\requests\models.py",  line  773,  in  raise_for_status raise  
HTTPError(http_error_msg,  response=self)
requests.exceptions.HTTPError:  404  Client  Error:  Not  Found
raise_for_status()方法是一种很好的方式,确保程序在下载失败时停止。这是一件好事:你希望程序在发生未预期的错误时,马上停止。如果下载失败对程序来说

不够严重,可以用 try 和 except 语句将 raise_for_status()代码行包裹起来,处理这一错误,不让程序崩溃。
import  requests
res  =  requests.get('http://inventwithpython.com/page_that_does_not_exist') try:
res.raise_for_status() except  Exception  as  exc:
print('There  was  a  problem:  %s'  %  (exc))
这次 raise_for_status()方法调用导致程序输出以下内容:
There  was  a  problem:  404  Client  Error:  Not  Found
总是在调用 requests.get()之后再调用 raise_for_status()。你希望确保下载确实成功,然后再让程序继续。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大飞哥软件自习室

希望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值