异常捕获处理

什么是异常?

代码运行出错会导致异常 异常发生后如果没有解决方案则会到底整个程序结束
image

一:异常捕获

'''
异常三个重要组成部分
    1.traceback
        翻到最下面从下往上的第一个蓝色字体鼠标点击即可跳转错误的代码处所在的行数
    2.XXXError
        错误的类型
    3.错误类型冒号后面的内容
    错误的详细原因(很重要 仔细看完之后可能就会找到解决的方法)
'''

错误的种类
    1.语法错误
       不被允许的 出现了应该立刻修改!!!
    2.逻辑错误
       可以被允许的 出现了之后尽快修改即可
          '''修改逻辑错误的过程其实就是在从头到尾理清思路的过程'''

'''
print(idna)    # NameError 变量名错误 没有定义

l = [11,22,33]
print(l[100])       # IndexError    索引错误

d = {'username':'jason'}
print('xxx'}        # KeyError    字典k搞错了

int('abc')          # ValueError     值错误
'''

'''
基本语法结构
    try:
        有可能出错的代码
    :except 错误类型 as e:
        出错之后对应的处理机制(e是错误的详细信息)
        
# 实例: 按照类型异常捕获
try:
    print(name)
except NameError as e:
    print('变量名name不存在', e)
 except ValueError:
    print('值不是纯数字')
'''
![image](https://img2020.cnblogs.com/blog/2608805/202111/2608805-20211119222304092-1261936705.webp)

二:万能捕获



万能异常
try:
    int('abc')
    print(name)
    l = [11]
    l[100]
except Exception:
    print('无所谓')

BaseException 老版无能异常

异常捕获句式和万能异常
    1.有可能会出现错误的代码才需要被监测
    2.被监测的代码一定要越少越好
    3.异常捕获使用频率越低越好
补充:
	try:
	被检测的代码
except 错误类型 as e:

else:
	被检测的代码不报错的时候执行
finally:
	无论是否报错最终都会执行
	
判断类型是否是该类型,不是则报错
name = 'jason'
assert isinstance(name,str)

主动报异常
raise 错误类型

image

posted @ 2021-11-19 22:24  AlexEvans  阅读(56)  评论(0编辑  收藏  举报