Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是基类Exception的成员。异常处理的try语法有两种,一种是:
try: block except [exception,[data...]]: block else: block
该种异常处理语法的规则是:
-
执行try下的语句,如果引发异常,则执行过程会跳到第一个except语句。
-
如果第一个except中定义的异常与引发的异常匹配,则执行该except中的语句。
-
如果引发的异常不匹配第一个except,则会搜索第二个except,允许编写的except数量没有限制。
-
如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。
-
如果没有发生异常,则执行else块代码。
try语句的第二种语法是:
try: block finally: block
该语句的执行规则是:
-
执行try下的代码。
-
如果发生异常,在该异常传递到下一级try时,执行finally中的代码。
-
如果没有发生异常,则执行finally中的代码。
第二种try语法在无论有没有发生异常都要执行代码的情况下是很有用的。例如我们在python中打开一个文件进行读写操作,我在操作过程中不管是否出现异常,最终我都是要把该文件关闭的。
除了系统引发的异常外,我们还可用raise语句手工引发一个异常:
raise [exception[,data]]