如果答案很明显,或者问题表述不正确,请不要扔石头,我编程比草还绿!
我正在从书中学习python一个字节的python,我到了抛出异常的章节,它说你可以创建超类Expection的子类(我们称之为myError),并根据需要调用它,例如:class myError(Exception): pass
, 然后通过 if..else: 调用它if a == 'abc': raise myError
,然后处理那个错误except myError: print('Error!')
。那么为什么不这样做:if a == 'abc':print('Error!')
而不是上面的例子,为什么在 if..else 可以实现相同的目标(我认为它可以,也许不是)时使用类?
使用异常的主要优点是调试方便。
一个完整的 Traceback 附加到任何异常,无论嵌套有多深。
还值得注意的是,错误被写入
stderr
. 系统将它们与正常输出区分开来,并可以采取任何行动。例如:
stderr
可以指出代码中的错误Supervisor
可以将错误写入单独的文件等等