使用 try 和 except 的用户定义的异常错误
User defined exception error using try and 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()
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"
我正在尝试在下面的二次根程序中创建一个用户定义的异常(使用 类)。 如果输入列表长度不是 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()
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"