gpt4 book ai didi

python - 将参数传递给自定义异常

转载 作者:太空狗 更新时间:2023-10-30 02:42:54 25 4
gpt4 key购买 nike

我最近学习了如何在 Python 中创建自定义异常并将它们实现到一个类中。我试图在我的异常中添加一个额外的参数以更加清晰,但似乎无法正确完成格式设置。

这是我正在尝试的:

class NonIntError(Exception):
pass

class intlist(List):

def __init__(self, lst = []):

for item in lst:
#throws error if list contains something other that int
if type(item) != int:
raise NonIntError(item, 'not an int')

else:
self.append(item)

预期结果

il = intlist([1,2,3,'apple'])

>>> NonIntError: apple not an int

有错误的结果

il = intlist([1,2,3,'apple'])

>>> NonIntError: ('apple', 'not an int')

重申我的问题,我想知道如何使我的异常看起来像预期的结果。

最佳答案

您正在使用两个 参数、item 和字符串'not an int' 初始化您的自定义异常。当您使用多个参数初始化 Exception 时,*args 将显示为一个元组:

>>> raise NonIntError('hi', 1, [1,2,3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
__main__.NonIntError: ('hi', 1, [1, 2, 3])

要获得您想要的结果,只需传递一个字符串,即:

>>> item = 'apple'
>>> raise NonIntError(item + ' not an int')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
__main__.NonIntError: apple not an int

关于python - 将参数传递给自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35095814/

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