gpt4 book ai didi

python - 通过调用位置来区分相同的异常

转载 作者:行者123 更新时间:2023-11-28 21:29:44 25 4
gpt4 key购买 nike

我有一个不可避免的情况,如下所示(简化):

FUNCTION_TO_CALL = y # can be either y or z
def x(*args, **kargs):
FUNCTION_TO_CALL(args, kargs)

def y(foo, bar=None):
if foo == bar: # actually not this stupid
raise TypeError()
else:
pass

def z(foo, bar, baz=None):
pass

非常丑陋,我知道。 :(

但是,无论如何,我需要能够区分 y 中引发的 TypeError,因为 *args 中没有任何内容,或者也没有任何内容其中有很多(因此没有足够的参数或太多)/坏的kwargs或者因为foo == bar

在实际设置中,可以调用的函数远不止两个,而且并不是所有的函数都有代码开放。

非常感谢!

最佳答案

您始终可以将自己的异常子类化为 TypeError,并单独使用它们。

class TooManyArgumentsError(TypeError):
pass
class EqualityError(TypeError):
pass

关于python - 通过调用位置来区分相同的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4772233/

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