Python 使用try和except的用户定义异常错误
我试图在下面的二次根程序(使用类)中创建一个用户定义的异常。 如果输入列表长度不是3(3个系数需要3个输入),则会抛出并返回错误。此外,如果存在输入错误,我希望代码停止执行。 但是,此代码不起作用,它不会引发异常,代码将继续执行 如果你能指导我,我将不胜感激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
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")