gpt4 book ai didi

python - 如何捕获作为参数传递给另一个函数的函数的异常

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:40 26 4
gpt4 key购买 nike

我有一个调用 API 的库。

由于我正在调用的 API 的一些限制,我希望能够使用不同的凭据重试调用。

我将库函数传递给的函数中的所有内容都包含在内。

但是,当我尝试从调用中捕获任何异常时,没有捕获到任何异常,我只是以代码退出和堆栈跟踪结束。

代码如下所示

import the_library

def making_the_call(api_call):
try:
api_call()
except TheKeyExceptionIamLookingFor:
# change creds and redo the call
except OtherExceptionsICareAboutAndExpect:
# Do other stuff to handle

making_the_call(the_library.some_api_call(the_args))

这是在 aws lambda 中运行,所以我不知道这是否是导致此问题的原因。

我在 python 控制台中运行了类似的代码,它从带参数的传递函数中捕获了异常,但这段代码只是退出并为我提供了一个堆栈跟踪,甚至显示了我正在寻找和计划捕获的确切异常。

最佳答案

要单独传递所有内容,您会做

def make_call(api_call, *args, **kwargs):
try:
return api_call(*args, **kwargs)
except SomeException:
# change args and kwargs
return make_call(api_call, *args, **kwargs)

make_call(the_library.some_api_call, 'apple', 1, 2, 3)

请注意 some_api_call 之后缺少 ()。在 make_call 中,args 将是一个 listkwargs (关键字参数)将是一个 dict

关于python - 如何捕获作为参数传递给另一个函数的函数的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48219403/

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