gpt4 book ai didi

python - Python 中的自定义异常

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

我试图了解如何使用 try-except 构造在 Python 中使用自定义异常。

这是一个自定义异常的简单示例:

# create custom error class
class CustomError1(Exception):
pass

我试图像这样使用它:

# using try-except
def fnFoo1(tuple1, tuple2):
try:
assert(len(tuple1) == len(tuple2))
except AssertionError:
raise(CustomError1)
return(1)
fnFoo1((1,2), (1, 2, 3))

这引发了 CustomeError1,但也引发了 AssertionError,我想将其包含在 CustomError1 中。

以下是我想要的,但似乎不是处理异常的方式。

# use the custom error function without try-catch
def fnFoo2(tuple1, tuple2):
if len(tuple1) != len(tuple2): raise(CustomError1)
print('All done!')
fnFoo2((1,2), (1, 2, 3))

如何编写隐藏其他异常的自定义异常?

最佳答案

根据 PEP 409您应该能够通过使用 raise CustomError1 from None 来抑制原始异常上下文。这也记录在案 here :

using raise new_exc from None effectively replaces the old exception with the new one for display purposes

此功能是在 Python 3.3 中添加的。在 3.0 到 3.2 的版本中,无法隐藏原始异常(哎哟)。

关于python - Python 中的自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24053716/

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