1.程序中的异常指的就是代码在运行过程中出现的bug,通常会导致整个代码停止运行. 2.异常的结构: File "D:/pythonProject7.12/生成器.py", line 7 =func() ^ IndentationError: unindent does not match any outer indentation level - 关键字 line 能够精准的提示我们出现异常的代码具体在哪一行 - IndentationError 最后一行冒号左侧就是代码异常的类型 - 最后一行冒号的右侧则是来提示我们这段代码异常的原因 修改bug的关键点 3.常见的异常类型 NameError 变量名错误/异常 IndexError 索引错误/异常 KeyError k键错误/异常 SyntaxError 语法错误/异常 TypeError 类型错误/异常 IndentationError 缩进错误/异常 4.异常的分类 1.语法错误 对于程序员来说 语法错误是零容忍的 2.逻辑错误 是可以出现的,能够及时更正就可以了
1.常见语法结构: try: 可能会出错的代码(被try监控) except 错误类型1 as e: # e就是具体错误的原因 对应错误类型1的解决措施 except 错误类型2 as e: # e就是具体错误的原因 对应错误类型2的解决措施 except 错误类型3 as e: # e就是具体错误的原因 对应错误类型3的解决措施 except 错误类型4 as e: # e就是具体错误的原因 对应错误类型4的解决措施 #可同时写多种错误类型,提前预防 2.万能语法结构: try: # 可能出错的代码 (任何类型的异常都可以) except Exception as e: # 万能异常方式1 print(e) #打印的是错误类型 except BaseException as e: # 万能异常方式2 #这种写法是上面的最初版本 print(e) #优点就是不需要像第一种语法结构那样罗列各类型的异常语法,代码更简单
异常捕获的目的就是为了提前预防可能会出错的代码并提前给出措施!!!
for循环的本质 #使用while循环和异常捕获实现for循环的功能 l1 = [22,34,4,5,6,5,6,77,8,90] #定义一个列表 依次取值 res = l1.__iter__() #把列表变成迭代器对象 while True: #循环列表取值 try: #用异常捕获关键字 try 提前预防while循环取值异常程序报错 print(res.__next__()) #循环打印列表里的值 except Exception as e: #Exception 万能异常处理关键词 break #取值结束自动结束循环