上一篇文章我们介绍了python的面向对象编程,如何去定义一个类,并实现对象实例化,以及面向对象三大特征,封装,继承,多态;接下来,我们将继续学习python中的异常处理机制。
在初学编程语言时,会遇到各种各样的问题,代码会有各种各样的bug,这种事总是会打击一个初学者的学习心态,不过学习就是这样,不断地打怪升级,提高本领,当我们熟悉一门编程语言后,在设计程序时,会对可能出现的错误提前判断,这样就可以知道是否出错,以及出错的原因,这就是python的异常处理机制。
Part.1 错误与异常
在程序设计中,难免出现错误,如语法错误,数据错误等,总的来说,程序中常见的错误有两种,语法错误和运行错误。
-
语法错误
在python中,语法错误是初学者经常犯的错,程序不符合程序设计时会报错。如打印 你好
print "你好"
我们知道,Python 3 已不再支持上面这种写法,所以在运行时,解释器会报如下错误:
-
运行错误
运行时错误,即程序在语法上都是正确的,但在运行时发生了错误。运行时期检测到的错误称之为异常。大多数异常程序不会处理,会以错误的形式显示,如下图,展示常见的报错。
当一个程序发生异常时,代表该程序在执行时出现了非正常的情况,无法再执行下去。在这种情况下,程序是要终止的。
如果要避免程序退出,可以使用捕获异常的方式获取这个异常的名称,再通过其他的逻辑代码让程序继续运行,这种根据异常做出的逻辑处理叫作异常处理。
Part.2 异常处理
python中使用被称为异常的特殊对象来管理程序执行期间发生的错误,每当出现让python不知所措的程序时,它都会创建一个异常对象,如果设计了异常处理机制,则程序会继续运行,如果对异常没有处理,则程序将停止,并显示trackback,其中包括异常的报告。
异常通常使用try-except 代码处理的,try-except 代码让python执行指定的操作,同时报告发生异常时怎么办。使用了try -except 代码块时,即便出现异常,程序也会继续运行,显示异常错误的信息。
assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。
python中常见的异常处理机制如下图所示;