Python 使用try和except的用户定义异常错误

Python 使用try和except的用户定义异常错误,python,exception,try-catch,except,Python,Exception,Try Catch,Except,我试图在下面的二次根程序(使用类)中创建一个用户定义的异常。 如果输入列表长度不是3(3个系数需要3个输入),则会抛出并返回错误。此外,如果存在输入错误,我希望代码停止执行。 但是,此代码不起作用,它不会引发异常,代码将继续执行 如果你能指导我,我将不胜感激 class quadRoots(): def __init__(self,coeff): self.A = coeff[0]/coeff[0] self.B = coeff[1]/coeff[0] self

我试图在下面的二次根程序(使用类)中创建一个用户定义的异常。 如果输入列表长度不是3(3个系数需要3个输入),则会抛出并返回错误。此外,如果存在输入错误,我希望代码停止执行。 但是,此代码不起作用,它不会引发异常,代码将继续执行

如果你能指导我,我将不胜感激

class quadRoots():     
def __init__(self,coeff):
    self.A = coeff[0]/coeff[0]
    self.B = coeff[1]/coeff[0]
    self.C = coeff[2]/coeff[0]
    self.Z = 0
    self.R_1 = 0
    self.R_2 = 0
    self.coeff = len(coeff)

    try:
        self.coeff == 3
    except:
        print("Input size is not valid")
    
    
def roots(self):
    import cmath
    self.Z = cmath.sqrt((self.B**2)/4 - (self.C))
    
    self.R_1 = ((-(self.B)/2) + self.Z)
    self.R_2 = ((-(self.B)/2) - self.Z)
    return [self.R_1,self.R_2]

def mult(self):
    return quadRoots.roots(self)[0] * quadRoots.roots(self)[1]

def sumRoots(self):
    return [complex(-(self.B))]

def prodRoots(self):
    return [complex(self.C)]
四根([1,-9,14,15])。根()

“尝试除外”链不能像这样工作。它在出现错误时工作。但在这里,没有错误。我建议您使用
assert self.coeff==3,“输入大小无效”
。相反,如果self.coeff不等于3,它将引发错误并退出程序


因此,可以用一条线代替整个链条
assert self.coeff==3,“输入大小无效”

这是预期结果吗?[(7+0j),(2+0j)]是的。它忽略了最后一个列表输入,仍然在进行计算。谢谢,非常感谢。如果它有帮助,请投票并将我的答案标记为解决方案!
    try:
        self.coeff == 3
    except:
        print("Input size is not valid")