为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

皈依舞 2023-02-22 19:02:14
我正在尝试在下面的二次根程序(使用类)中创建一个用户定义的异常。如果输入列表长度不是 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()
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

   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"


查看完整回答
反对 回复 2023-02-22
  • 1 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号