gpt4 book ai didi

python - 创建自定义异常或使用现有

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

我有一个函数:

def f(x):

if x == 'dog':
print('ok')
elif x == 'cat':
print('ok')
else:
raise MyException('Not an x i would expect')

我正在添加一个异常(exception),以防有一天我将供应 x 的任何东西更改为 f() 而忘记修复 f(),这样我就可以很容易地找到问题所在。

  1. 这是在需要时“记住”更改 f() 的错误方法吗?

其次,f() 是另一个函数的一部分,它可能会得到一个处理某些异常的装饰器:

@an_exception_handler
def g(x):
f(x)
return 1000

我不希望 @an_exception_handler 意外处理 MyException(如果 MyExceptionValueError 的子级例如,@an_exception_handler 处理 ValueError)。

  1. MyException 应该是自定义异常,还是使用现有的很少发生的异常?

最佳答案

如果您真的不想让 MyException 成为 ValueError 的子类,您绝对应该创建自己的异常类,除非您找到另一个描述异常的异常类同样好。

老实说,您处理“除此之外的所有 ValueError”(从概念上讲,这绝对是一个 ValueError)的方式感觉有点不一致。你想用它完成什么?

正如 PM 2Ring 在他的评论中指出的那样,断言也是一个不错的选择。可能比另一个异常(exception)更好。

关于python - 创建自定义异常或使用现有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29212296/

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