异常处理
Posted 3sss-ss-s
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常处理相关的知识,希望对你有一定的参考价值。
1. 什么是异常处理
异常是错误发生的信号,一旦程序出错就会产生一个异常,如果该异常
没有被应用程序处理,那么该异常就会抛出来,程序的执行也随之终止
异常是错误发生的信号,一旦程序出错就会产生一个异常,如果该异常
没有被应用程序处理,那么该异常就会抛出来,程序的执行也随之终止
异常包含三个部分:
1. traceback异常的追踪信息
2. 异常的类型
3. 异常的信息
1. traceback异常的追踪信息
2. 异常的类型
3. 异常的信息
错误分为两大类:
1. 语法上的错误:在程序运行前就应该立即修正
2. 逻辑上的错误
2. 为何要异常处理
1. 语法上的错误:在程序运行前就应该立即修正
2. 逻辑上的错误
2. 为何要异常处理
避免程序因为异常而崩溃,所以在应用程序中应该对异常进行处理,从而增强程序的健壮性
3. 如何异常处理
try:
代码1
代码2
代码3
......
except NameError:
当抛出的异常是NameError时执行的子代码块
except ....:
pass
except ...:
pass
else:
print(‘else必须放到后面,else的子代码块会在被检测的代码没有异常的情况下执行‘)
finally:
print(‘无论被检测的代码有没有异常都会执行‘)
f.close()
#
## 万能异常类型Exception as e:可以匹配任意类型的异常
## except (nameerror,keyerror,indexerror...)as e:把要找的异常写成一行
#
try:
代码1
代码2
代码3
......
except NameError:
当抛出的异常是NameError时执行的子代码块
except ....:
pass
except ...:
pass
else:
print(‘else必须放到后面,else的子代码块会在被检测的代码没有异常的情况下执行‘)
finally:
print(‘无论被检测的代码有没有异常都会执行‘)
f.close()
#
## 万能异常类型Exception as e:可以匹配任意类型的异常
## except (nameerror,keyerror,indexerror...)as e:把要找的异常写成一行
#
# 主动触发异常
# print(‘===>1‘)
# print(‘===>2‘)
# raise TypeError(‘类型错误‘)
# print(‘===>3‘)
# 自定义异常类型(了解)
# class MyException(BaseException):
# def __init__(self,msg):
# super().__init__()
# self.msg=msg
#
# def __str__(self):
# return ‘<%s>‘ %self.msg
#
# raise MyException(‘我自定义的异常‘)
# 断言(了解)
print(‘上半部分,生产数据‘)
l=[1,2,3,4]
# if len(l) != 5:
# raise TypeError(‘列表的长度必须为5‘)
assert len(l) == 5
# raise TypeError(‘列表的长度必须为5‘)
assert len(l) == 5
print(‘下半部分,处理数据‘)
以上是关于异常处理的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )
Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )