异常处理
什么是异常?
异常就是程序运行时发送错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止)
异常的分类:
语法错误(最低级异常,避免犯错)
语法错误在python解释器的语法检测时,就会报错,必须在程序执行前就改正
逻辑错误
这种异常只有在代码被执行时才能发现,我们要处理的重点就是运行时产生的异常
特点:在没有运行代码前,往往无法很直观的能发现。如果运行时产生异常,并且我们没有正的处理异常时,他就会抛出错误信息,并且终止程序的运行,此时我们可以通过捕捉异常,使我们的程序更加稳定不容易崩溃,但也不意味着能滥用异常处理。
异常的组成
- 异常的追踪信息(具体发生异常的位置 以及函数的调用顺序)
- 异常类(错误的类型)
- 异常值(详细的错误信息)
Case:
1 | def func(): |
常见异常
1 | AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x |
异常处理
为了保证程序的健壮性与容错性,即在遇到错误时程序不会崩溃,我们需要对异常进行处理。
- 如果错误发生的条件是可预知的,我们需要用if进行处理:在错误发生之前进行预防
- 如果错误发生的条件是不可预知的,贼需要用到try…except: 在错误发生之后进行处理
1 | # 基本语法 |
主动抛出异常
1 | # 当程序中有一些用户没有遵守规则,我们可以主动抛出异常 |
异常处理的使用
通常只有在错误发生的条件无法预知的情况下,才应该加上try…except
异常不太常用语法
1 | # 不太常用的 |