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

我正在尝试在下面的二次根程序(使用类)中创建一个用户定义的异常。如果输入列表长度不是 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)]

quadroots([1,-9,14,15]).roots()


皈依舞
浏览 145回答 1
1回答

桃花长相依

   try:        self.coeff == 3    except:        print("Input size is not valid")Try-Except 链不是这样工作的。它在出现错误时起作用。但是在这里,没有错误。我建议你使用assert self.coeff == 3, "Input size is not valid". 相反,如果 self.coeff 不等于 3,它会引发错误并退出程序。这样整个 try except 链可以用一行替换。assert self.coeff == 3, "Input size is not valid"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python