异常
就是报错, 要是有异常, 程序会立即停止执行, 不会执行异常后面的语句
二. 异常的传播
当在函数中出现异常,如果函数中对异常进行了处理,则异常不会进行传播, 若没有进行处理,则会传播到外面
直到传播到全局作用域如果没有处理异常,则程序会终止
当程序运行过程中出现异常以后,所有的异常信息会被专门保存到一个异常对象中而异常传播是实际上就是异常对象抛给调用处, 就是保存在一个类中
可以在外面对函数吧进行处理
其他的错误
TypeError | 类型不合适引发的错误 |
---|---|
AttributeError | 尝试访问未知的对象属性引发的错误 |
ImportError | 当import语句无法找到模块或from无法在模块中找到相应的名称 |
IoError | 输入/输出的错误(如果读取的文件不存在) |
KeyError | 请求一个不存在的字典关键字引发的错误 |
ValueError | 传入值的错误 |
IndexError | 索引超出序列的范围引发的错误 |
Indentation | 缩进错误 |
NameError | 尝试访问一个没有声明的变量引发的错误 |
异常对象
如果except后面没有加上异常类型 , 则会捕获所有的错误类型
如果后面加上了错误类型, 则只会捕获后面的错误类型
Exception是所有异常的父类, 加上他可以捕获所有的错误类型也可以将错误的类型保存在这里, 但是看到第一个错误, 不能查看多个
自定义异常对象
raise 可以自定义抛出异常 , 后面加上错误类
def fn(a,b):
if a<0 or b<0 :
raise Exception('两个参数都要为整数')
return a+b
print(fn(-1,2)) 这里就会报错
文件(File)
python对计算机进行增删改查
I/O (input/output)
文件打开与关闭
文件打开 open()函数
语法: open(“文件名”, mode = 可选参数, enconding = ‘指定的编码’)
文件名必须用引号包住,可选参数默认是可读 可写如: “r”
若open()函数读取文件没有加上指定的操作,用这个函数之前必须存在此文件否则会报错; 若需要用open函数进行创建文件, 需要在可选参数那里加上(w w+ a a+)
关闭文件 close()
为了防止忘记关闭文件一般情况用with
with open() as e:这样执行会自动关闭
print(e.read())