基本异常捕捉语句
1、基本异常捕捉语句语法
try:
代码模块1
except:
代码模块2
逻辑顺序:
1、先执行try语句,代表捕捉异常机制开始
2、执行代码模块1,若没有出错,忽略后续except关键字和代码模块2,代码正常执行完毕
3、若在执行代码模块1过程中发生异常现象,则终止代码模块1内剩余代码的执行,转到except处
4、except关键字捕捉到异常信息,并执行代码模块2,异常处理结束
def print_D(dic):
i=0
try:
len1=len(dic)
while i < len1:
print(dic.popitem())
i+=1
except:
print(222222)
print(print_D({1:"a",2:"c"}))
print(print_D([1,2,3]))
(1, 'a')
(2, 'c')
None
222222
None
finally子句的异常处理
try:
代码模块1
except:
代码模块2
finally:
代码模块3
try:
1/0
except:
print("不能是0")
finally:
print("成功了")
不能是0
成功了
try:
1/2
except:
print(11111)
finally:
print(222222)
222222
捕捉特定异常信息:
ValueError 对象值不正确时触发
IndexError 指定的字符串、元组、列表等序列对象的下标元素不存在时,触发该错误
Nameerror 指定的对象名不存在时,触发该错误
KeyError 指定的字典键不存在时,触发该错误
TypeError 提供了错误类型的对象时,触发该错误
ModuleNoFoundError 模块文件找不到或模块文件名写错时,触发该错误
SynatxError 语法无效时,触发该错误
AttributeError 对象属性、方法引用或赋值不当时,触发该错误
try:
i+=1
except NameError:
print(123213)
123213
指定多个特定出错
try:
i+=1
except (NameError,TypeError):
print(23232323)
23232323
raise触发错误
i="1"
if type(i)!=int:
raise TypeError(123213)
Traceback (most recent call last):
File "D:/py自学代码/python从零基础到项目实践/第九章异常处理/try和except.py", line 41, in <module>
raise TypeError(123213)
TypeError: 123213