DAY15 异常捕获
01文件操作细节
1.1 参数encoding
open(file,mode=‘r’.*,encodind=None)
encoding:设置文本文件的编码或者解码方式(数据在编码之后写入文件中,将数据从文件中读出来就是解码)
原则:编码对应的编码值和解码对应的编码值必须一致
常用编码:utf-8(中文范围4e00 -9fa5),gbk(中文范围8140-FEFE)
注意:以’b‘的方式打开文件,不能设置encoding的值
1.2 read - 读文件
文件对象.read() - 从读写位置开始读到文件结束(读整个文件内容)
文件对象.readline() -从读写位置开始读一行
注意:随着读操作的进行,文件读写位置会不断发生改变
1.3 关闭文件问题
文件关闭原则:文件操作完成后及时关闭
文件自动关闭问题:
1)程序结束后文件会自动关闭
2)给保存文件对象的变量赋值的时候会自动关闭
3)不保存会自动关闭
4)用with打开文件
with open() as 文件对象:
操作文件(文件上下文)
02异常捕获
2.1异常 -错误(程序报错)
执行程序的过程中,如果程序出现异常,会导致整个程序崩溃(后面的其它代码不会执行)
异常类型:IndexError、TypeError、FileNotFindError、ValueError、KeyError等等!
2.2 异常捕获 - 让程序在出现异常的时候程序不崩溃,可以继续运行
什么时候需要捕获异常:知道某段代码可能会出现异常,但是无能为力、或者这个异常是因为用户行为导致的、或者使用者导致的,
但是还想在出现异常的时候程序不崩溃,就使用异常捕获。
语法1 - 捕获所有类型的异常
try:
代码段1(需要捕获异常的代码)
except:
代码段2(捕获到异常后会执行的代码)
先执行代码段1,如果执行过程中出现异常,就马上执行代码段2,然后再执行后续的其他语句;如果没有出现异常,
就不执行代码段2直接执行后续的其他语句。
语法2 - 捕获特定类型的异常
try:
代码段1(需要捕获异常的代码)
except 异常类型:
代码段2(捕获到异常后会执行的代码)
语法3 - 同时捕获多种异常, 针对不同的异常做相同处理
try:
代码段1(需要捕获异常的代码)
except (异常类型1, 异常类型2,…):
代码段2(捕获到异常后会执行的代码)
语法4 - 同时捕获多种异常,针对不同的异常可以做不同的处理
try:
代码段1(需要捕获异常的代码)
except 异常类型1:
代码段11
except 异常类型2:
代码段22
except 异常类型3:
代码段33