一、前言
因个人习惯,在阅读和学习文字资料时,习惯摘写笔记,因此在这里留下自己的学习记录。笔记的内容偏摘抄为主,并非自己的原创内容。
内容基于:《简明 Python 教程》Swaroop, C. H. 著沈洁元 译
二、简介
异常,当程序出现异常的状况,如读文件时,文件不存在。(此时可以用异常来处理)
在python中,若程序有无效语句,python会告诉我们那里有错误。
当我们引发常规的无效语句错误时,控制台会打印出错误位置,该行为是错误的错误处理器做的。
处理的意义:避免因不可预知的异常导致程序的终止,提高程序的健壮性和容错性。
三、异常的处理
我们如何处理异常,避免程序因异常而终止呢?(需要对异常进行处理,默认处理即由python终止程序,打印错误位置)
处理方式:对异常进行捕获处理,类似java的 try......catch.....语句,在python中则是try......except:......
try语句块:有可能出现异常的代码;
except语句块:处理异常的语句块;
其中 except后面可定义错误类型,指明捕获处理的异常类型,没有定义则默认匹配所有异常。(一个except后面可接一个异常类型,也可以以元组的形式处理多个异常)
特点:
1、允许有多个except从句,单独处理指定的异常类;
2、else从句,位于最后一个except从句后面,当try语句块没有捕获到异常则执行。
3、finally从句,位于else从句后面,不管有没有捕获到异常都将执行。
当我们自定义异常类型时,需继承Exception:python有两种错误类型,分别是语法错误和异常(逻辑错误)。
语法错误:即程序解析错误,发生在程序运行前;
异常:异常是程序运行期间可能发生的错误;(大多异常不会被处理,都是以错误的形式打印出错误信息)
Exception:python的异常基类,当你不知道异常类型时,可以捕获捕获该异常类型(万能异常)
四、抛出异常
类似java中的throws操作,在python中,抛异常的关键字是raise,用于主动触发异常,用法如下:
raise 异常类(这里可以写异常描述信息)