异常
异常捕获
1. 什么是异常?
异常就是错误发生的信号,如果不对该信号做处理,那么异常之后的代码都不会执行
2.异常三个重要组成部分
1.traceback
翻到最下面从下往上的第一个蓝色字体鼠标左键点击即可跳转到错误的代码所在的行
2.XXXError
错误的类型
3.错误类型冒号后面的内容
错误的详细原因(很重要 仔细看完之后可能就会找到解决的方法)
3.异常的种类
1.语法错误
不被允许的 出现了应该立刻修改!!!
print(123
2.逻辑错误
可以被允许的 出现了之后尽快修改即可
# 逻辑错误尽量写到完美 a = [1, 2, 3] a[5]
4. 为什么要用异常
增强代码的健壮性
5. 怎么用异常?
try: 被监测代码 except 异常的类型: pass except 异常的类型: pass except 异常的类型: pass except Exception as e: pass else: # 当被监测代码没有发生异常的时候,触发的 pass finally: 不管被监测的代码有没有出错,都执行 pass
6.实例
'''修改逻辑错误的过程其实就是在从头到尾理清思路的过程'''
print(idna) # NameError l = [11,22,33] print(l[100]) # IndexError d = {'username':'jason'} print(d['xxx']) # KeyError int('abc') # ValueError """ 基本语法结构 try: 有可能会出错的代码 except 错误类型 as e: 出错之后对应的处理机制(e是错误的详细信息) except 错误类型 as e: 出错之后对应的处理机制(e是错误的详细信息) except 错误类型 as e: 出错之后对应的处理机制(e是错误的详细信息) """ try: int('abc') except NameError as e: print('变量名name不存在',e) except ValueError: print('值不是纯数字')
万能异常
try: int('abc') print(name) l = [11] l[100] except Exception: print('你来啥都行 无所谓')
异常捕获句式和万能异常
1.有可能会出现错误的代码才需要被监测
2.被监测的代码一定要越少越好
3.异常捕获使用频率越低越好
try: 被监测的代码 except 错误类型 as e: ... else: 被监测的代码不报错的时候执行 finally: 无论是否报错最终都会执行 # 断言(了解) name = 'jason' assert isinstance(name,str) # 主动报异常 raise 错误类型

浙公网安备 33010602011771号