python编程从零基础到项目实践第九章学习---异常

基本异常捕捉语句

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

 

posted on 2020-08-14 17:24  刘阿童木  阅读(121)  评论(0编辑  收藏  举报

导航