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异常处理的最佳实践之一。

posted @ 2025-08-08 10:07  奥润橘_Orange  阅读(19)  评论(0)    收藏  举报