异常处理
异常处理
1.异常错误分类:
1.1 语法错误
1.2 逻辑错误
逻辑错误,难以避免,必须要处理
2.异常处理:
2.1 先捕捉错误
2.2 在进行处理
异常处理的两种方式:
if 如果
type: except 异常处理
if处理异常时的劣势:
1.对于相同的错误类型,要用大量的重复代码处理异常
2.如果出现的异常种类比较多时,利用if,代码会出现冗余现象
type处理异常:
try: 单支 try: a =1 pass except 错误类型:
3. try: 多支
多种错误
except 错误类型1 as e: print(e) except 错误类型2 as e: print(e) except 错误类型3 as e: print(e)
万能异常:
try:
多种错误
except Exception:
print('...')
如果你只是想将异常处理掉,对错误不关系,用万能异常
如果你需要根据不同的错误信息而执行不同的逻辑(分流),那么用多分支,或者多分支加万能异常
try 多分支 + 万能异常
try: 多种错误 except : else: 如果出现异常,就不执行else,没有出现异常就执行else语句
try except (else) finally
finally: 出不出现异常都执行,异常出现前执行finally
用途:
1.关闭文件句柄,关闭数据库链接
2.函数return之前能够执行finally代码
3.break 之前可以执行finally
try: 错误 except 错误类型: print(11) finally: print(22)
raise 主动抛出异常
raise IndexError('超出索引范围')
# 断言 表示一个强硬的态度,不满足条件就直接报错
assert + 条件 条件不成立 ,直接报错
自定异常:
大项目开发的时候,出现的错误是python解释器没有给你定义的错误类型
异常处理的总结:
1.异常处理不能经常使用,耗费功能,异常处理的分支越多,冗余越多
2.能用长须解决的问题,尽量用程序解决
异常处理的用法:
1.一些无法预知的错误,要用异常处理