第八章 (小知识)异常捕获

异常捕获

!!!小细节
这里是个小细节

# 什么是异常
	代码运行出错会导致异常 异常发生后如果没有解决方案则会到底整个程序结束
 
# 异常三个重要组成部分
	1.traceback
    	翻到最下面从下往上的第一个蓝色字体鼠标左键点击即可跳转到错误的代码所在的行
    2.XXXError
    	错误的类型
    3.错误类型冒号后面的内容
    	错误的详细原因(很重要 仔细看完之后可能就会找到解决的方法)

# 错误的种类   
    1.语法错误
    	不被允许的 出现了应该立刻修改!!!
    2.逻辑错误
    	可以被允许的 出现了之后尽快修改即可
   		'''修改逻辑错误的过程其实就是在从头到尾理清思路的过程'''
        
# 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.异常捕获使用频率越低越好
"""

image

异常捕获补充(了解)

try:
    被监测的代码
except 错误类型 as e:
    ...
else:
    被监测的代码不报错的时候执行
finally:
    无论是否报错最终都会执行
    
# 断言(了解)
name = 'jason'
assert isinstance(name,str)

# 主动报异常
raise 错误类型
posted @ 2021-11-19 19:40  hai起奈  阅读(23)  评论(0编辑  收藏  举报