gpt4 book ai didi

python - 是否可以捕获请求的所有异常? (通常,对于模块)

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:05 31 4
gpt4 key购买 nike

我有一些代码可以进行 requests.get() 调用,这可能会以各种方式失败。我想捕获 requests 异常,但不关心调用失败的原因。

我想避免这样的代码

try:
r = requests.get(url)
except:
pass

因为它可能会捕获与请求 无关的异常(在上面的情况下几乎不会出现这种情况,但如果有更多代码,则有可能)。

requests 异常是 documented但我不想一一列举。 有没有一种方法可以捕获所有异常,requests 异常的某种通配符?(更普遍的是 - 对于模块提供的异常)

我也可以选择类似的东西

try:
r = requests.get(url)
except Exception as e:
print(e)

但我想避免分析 e 来过滤掉 requests 异常。

注意:这不是 question on handling all but one exception 的副本- 我的目标是一整类相关的异常(并允许在其他情况引发异常时崩溃,在我的情况下这将是一个错误)

最佳答案

优秀的库设计者通常会为他们的库创建一个基本异常,其他异常将从中派生。

根据documentation,对于请求,这是RequestException你联系了;在 except 子句中使用它会捕获从它派生的任何内容。

try:
# code involving requests
# that might err
except RequestException:
# ignore, handle..

如评论和问题中所述,基于它们定义的模块的区分不能自动(即在 except 子句表达式中;你' d 必须自己在 except 子句的主体中添加该逻辑。

关于python - 是否可以捕获请求的所有异常? (通常,对于模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42979289/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com