黑马程序员学Python——异常

本文主讲:在Python语句中出现的异常怎么解决…..

了解异常

什么是异常?

答:程序在执行的时候,检查到了错误,即报错,解释器无法继续执行了,这就叫做“异常”

异常语法的作用?

答:当不确定某段代码是否存在异常时,就可使用异常语法,即尝试这段代码是否存在异常,如果存在异常则执行这段代码的替补代码,不存在异常则执行此代码

异常语句写法

异常语法

异常语法功能:尝试某段代码是否异常,如果异常则执行这段代码的替补代码,不异常则执行这段代码

语法:

1
2
3
4
try
尝试代码
except
替补代码

注意事项:try和except代码后面不要忘记加引号:

异常语句优点:当某段代码异常时可以保证程序继续执行下去,而不是停止执行代码。

快速代码体验(尝试以只读“r”模式打开文件,如果文件不存在则以只写模式”w”打开文件)

image-20211010091815107

捕获异常

捕获指定异常

捕获指定异常成功条件:尝试代码异常类型和except后的指定异常类型一致,代表捕获异常成功,即执行except下面的代码,反之失败。

语法:

1
2
3
4
try
尝试代码
except 指定异常类型:
捕获异常成功执行的代码

注意事项:

1:如果尝试代码的异常类型和except后面的异常类型不一致,则捕捉异常失败,即except下面的代码不执行
2:异常语法try:下面的尝试代码必须只有一行,代表检测一行代码是否异常

快速代码体验(捕获异常成功)

image-20211010091840474

捕获异常失败代码

image-20211010091850621

捕获多个异常

捕获多个异常

功能:不确定尝试代码的异常类型时,可使用捕获多个异常,增加捕获异常成功的概率

语法:

1
2
3
4
try
尝试代码
except (异常类型1,异常类型2…….):
捕获异常成功执行的代码

注意事项:捕获异常成功条件为尝试代码的异常类型与except后面括号中其中一个异常类型相同即为捕获成功

快速代码体验

image-20211010091911694

捕获异常描述信息

捕获异常描述信息

image-20211010091921294

功能:捕获到尝试代码异常类型后,想要详细的查看尝试代码的异常之处可以捕获异常描述信息

代码:

1
2
3
4
try
尝试代码
except (异常类型1,异常类型2as result:
捕获异常成功后执行的代码

注意事项:

1:其中result是一个变量,用于存贮捕获到的异常描述信息,可以打印查看

2:except下面缩进的代码是捕获异常成功后执行的代码

快速代码体验

image-20211010091936063

捕获所有异常

了解Exception

答:Exception是所有程序异常类的父类,即包含了所有程序异常类型,也就是说在异常语法中,except后面放上Exception就代表了无论尝试代码异常类型是什么,捕获异常都会成功哒。

掌握捕获所有异常

功能:在不知道尝试代码异常类型的时候,利用捕获所有异常,这样不管尝试代码异常类型是什么,都会捕获异常成功了!

语法:

1
2
3
4
try
尝试代码
except Exception as result:
捕获异常成功执行的代码

快速代码体验

image-20211010091953027

异常的else

功能:当尝试代码没有异常的时候,执行else下方缩进的代码

语法:

1
2
3
4
5
6
try
尝试代码
except Exception as result:
捕获异常成功后执行的代码
else
尝试代码没有异常执行的代码

注意事项:else的缩进与try以及except是一样的

快速代码体验

image-20211010092008544

异常的finally

功能:无论尝试代码有没有异常都要执行finally下方缩进的代码,比如说关闭文件

语法:

1
2
3
4
5
6
try
尝试代码
except 异常类型 :
捕获异常成功执行的代码
finally
无论尝试代码有没有异常都要执行的代码

快速代码体验(文件打开关闭相关)

image-20211010092021471

终端打开py文件

你问我答:怎么在电脑终端打开py文件呢?

答:请看下面步骤

第一步:找到py文件的根目录

image-20211010092037035

第二步:双击目录文件名

image-20211010092048021

第三步:删除原有文字,输入cmd进入终端并且进入这个根目录

image-20211010092058365

第四步:进入终端,输入根目录里的py文件名,在终端内打开这个py文件

image-20211010092125705

异常的传递

异常的传递(异常语法的嵌套)

一:根据需求利用异常的传递完成代码

需求:尝试以只读模式打开一个文件,如果出现异常,打印这个文件异常描述信息,如果可以打开这个文件,尝试读取这个文件中的内容。

读取需求:尝试循环读取文件中的数据,循环一次读取一行,读取完成后间隔3秒将读取内容打印出来,如果读取出错告诉开发者读取出现异常!

快速代码实现

image-20211010092155972

自定义异常类

下面请看教程黑马程序员(p330—p331)

未完待续……