class MissingnumError (CheckError):
def __init__(self, num, type = "Animal" ):
self.num = num
self.type = type
def __str__(self):
forma = '%s #%d not found'%(self.type,self.num)
return forma
def __repr__(self):
return str(self)
如果我想访问此错误并从其他类中提升它,我该怎么办? 假设我在一个不同的类中定义了一些函数,我将用于循环动物列表但是如果没有找到动物,我将需要提出上述错误。如何访问它并让它打印 str :forma ???
示例:
def myfnction(self, animal):
for something in listofthings:
if something == animal:
return something
raise MissingnumError
如何通过访问上面的类并打印 str ???
正确引发此错误答案 0 :(得分:0)
您只需raise
它,向raise
提供一个具有相应必需参数的实例(num
中定义的__init__
):
raise MissingnumError(1)
如果没有指定处理程序,Python只会__repr__
并返回指定的消息:
MissingnumError: Animal #1 not found
另外两个注意事项:
type
作为参数名称。 Python已将type
用于其他目的,并在方法体内屏蔽它。CheckError
应继承自Exception
,这是您提供给raise
的任何对象所必需的。