python中如何处理多种错误捕获
在学习requests代码源码时发现:当一段代码中可能出现多种错误需要捕获时,我们可以将它们平级放置,而非嵌套处理
import requests
from requests.exceptions import HTTPError, ConnectionError, Timeout
try:
response = requests.get('https://httpbin.org/status/404')
# 对4XX/5XX状态码引发异常
response.raise_for_status()
# 这段代码只有在请求成功时才会运行
print("成功!")
print(response.text)
except HTTPError as e:
print(f"HTTP错误: {e}")
except ConnectionError as e:
print(f"连接错误: {e}")
except Timeout as e:
print(f"超时错误: {e}")
except Exception as e:
print(f"发生错误: {e}")
在Python中,可以使用多个except子句来同级处理不同类型的异常,而不需要层层嵌套。这是一种标准且推荐的异常处理方式。
优势说明
平级处理:所有异常处理都在同一层级,代码清晰易读
精准捕获:可以针对不同类型的异常执行不同的处理逻辑
执行顺序:按照编写的顺序依次匹配,一旦匹配成功就执行对应代码块
兜底处理:使用Exception作为最后的兜底,捕获所有未被前面except捕获的异常
这种方式比嵌套处理更加简洁明了,是Python异常处理的最佳实践之一。

浙公网安备 33010602011771号