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

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 异常捕获。

原文地址:https://www.cnblogs.com/paulwinflo/p/11951493.html

时间: 2024-10-24 19:23:27

【python】raise_for_status()抛出requests.HTTPError错误的相关文章

python自定义异常抛出接受多个数值

在使用Python的时候,有时候想自己自定义异常错误,同时抛出多个参数,比如对数据库查找一条数据,如果没有找到,返回 {"errCode":"-1", "errMsg":"该列数值是异常!"}的Json信息,那么异常需要抛出errCode和errMsg.下面的代码解决了该问题,也就是自定义异常抛出和接收多个值的技巧 运行之后获得的结果为: 注意这个自定义异常类需要继承ValueError类. 原文地址:https://www.

Python强制抛出自定义异常

raise Exception("My Exception") 当程序运行到这行时,会抛出异常,打印出Exception: My Exception

.NET WebAPI 正确抛出错误详细信息

最近把之前的WebAPI项目发布到服务器上,数据库由SQL Server2008 EXPRESS改为SQL Server2000,但在分页查询时服务器抛出了"500错误",但却看不到错误的详细信息,按照之前的经验把配置文件的customErrors打开依然看不到详细信息,由于项目是发布在服务器上,没有办法进行调试,且服务器是windows20003,页没有办法进行远程调试,写try-catch-捕捉action中的错误并抛出依然获取不到详细信息,得不到错误详细信息就没有方向对错误进行修

《从零开始学Swift》学习笔记(Day54)——抛出错误

原创文章,欢迎转载.转载请注明:关东升的博客 能放到try后面调用函数或方法都是有要求的,他们是有可能抛出错误,在这些函数或方法声明的参数后面要加上throws关键字,表示这个函数或方法可以抛出错误. 声明抛出错误方法示例代码如下: //删除Note记录方法 func remove(model: Note) throws { ... } //查询所有记录数据方法 func findAll() throws -> [Note] { ... } 上述代码remove(_:)方法没有返回值,throw

PLSQL_Oracle Exception异常分类、异常抛出、异常处理、异常传播(概念)

2014-06-03 BaoXinjian 一.摘要 在PLSQL程序开发过程中,很重要的部分就是对程序异常的监控和处理,包括如何触发异常,何时进行处理,如何进行处理,是否将程式中的所有异常集中在一起,通过公共异常处理的procedure或function,如果没有完善的程式处理机制,很难说该程式是一只健壮的程式,当程式遇到很多类型或者量很多资料时,系统若没有异常处理必然会导致程式的出错 当预判到了某些异常,需要对预判到的异常进行合适相应的处理,是否抛出异常还是忽略还是其他 当然程式没有预判到或

迭代器使用过程中为什么抛出ConcurrentModificationException

出现的场景:在迭代器对集合进行遍历的同时,集合本身进行变更操作(add(), remove(), set()). 当正常调用时: import java.util.ArrayList; import java.util.Iterator; public class TestDemo { public static void main(String[] args) { ArrayList<Integer> a = new ArrayList<>(); a.add(1); a.add(

python模范发送邮件的时候,才smtp.connect的时候总是抛出错误

python发送邮件的时候,总是出现:[Errno 10060] 错误码 根据debug得到在connect的时候出错. 认真检查了下host,没有错呀~应该就是服务器的host. 查看了下网上的一些例子,发现qq的host举例:smtp.qq.com/smtp.163.com/smtp.162.com 于是觉得应该用smtp.+XXX.com来试一下~就可以解决了~ python模范发送邮件的时候,才smtp.connect的时候总是抛出错误,布布扣,bubuko.com

Python(八) —— 异常(概念、捕获、传递、抛出)

异常的概念 捕获异常 异常的传递 抛出异常 异常的概念 程序在运行时,如果 Python 解释器 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是 异常 程序停止执行并且提示错误信息 这个动作,我们通常称之为:抛出(raise)异常 捕获异常 1.简单的捕获异常语法 在程序开发中,如果 对某些代码的执行不能确定是否正确,可以增加 try(尝试) 来 捕获异常 捕获异常最简单的语法格式 try: 尝试执行的代码 except: 出现错误的处理 try 尝试,下方编写要尝试代码,不确

抛出错误

因为错误也是一个类,捕获一个错误就是捕获到该类的一个实例 因此,错误并不是凭空产生的,而是有意创建并抛出的 Python的内置函数会抛出很多类型的错误,自定义函数也可抛出错误 自定义错误 如果要抛出错误,首先根据需要,可以定义一个错误类,选择好继承关系,然后,用raise语句抛出一个错误的实例 必要时可自定义错误类型,但尽量使用Python内置的错误类型 class FooError(ValueError): #继承Python内置错误类型ValueError pass def foo(s):