异常处理
异常时一种信号,一种不同于常规情况的信号,如果没有正确处理它 那么最后的结果报错,同时终端程序的运行
异常的结果就是报错
学习的主要目的:
学习异常处理的目的是为了提高程序的健壮性
即使发生问题也不会中断执行
异常的分类:
1.语法检测异常(最低级错误)
2.运行时异常
已经通过了语法检查,开始解释执行代码,但是逻辑有问题
强调:
解释器在执行程序时 首先要做的是语法检测 如果发现问题 则一行代码都不会执行
异常的组成
追踪信息用于定位错误发生的位置
发生错误的文件路径及行号
具体的异常代码
具体的异常类型
异常的具体原因
需要掌握的语法
try except except
try except finally
断言
一句非常肯定的话
场景
当一些代码 需要满足某种条件的情况下再应该执行
就可以使用assert 来断言 当然用if 也行
assert仅仅是帮你简化if代码
使用方法:
assert 条件表达式
如果断言失败立即抛出异常 结束执行
主动抛出异常
语法
raise 可以是一个异常类 也可以某个异常类的对象
场景
作为功能的提供者 要提供一个功能给外界使用
当使用者 没有按照正常要求来使用功能时 导致功能无法正常运行时 就应该抛出异常来告诉使用者
功能提供方 抛出异常
功能使用方 处理异常
自定义异常类
为什么要自定义异常类
当内置异常类型 无法准确描述错误原因时 就需要自定义异常类
让你的类继承内置异常类型
三层架构
1.用户界面层
负责接收数据和展示数据
2.业务逻辑层(接口层)
负责一系列的逻辑判断
将数据组装成一定格式
3.数据处理层
负责将数据存储到指定位置
从指定位置读取数据交给业务逻辑层