知识回顾:
异常类型结构:
try:
pass
except:
pass
else:
pass
finally:
pass
异常中,必须要有的try关键词,后接上except或者else
一、异常栈的跟踪
栈的特点:先进后出
异常的抛出,如果内部的异常没有被进行处理,那么会从最内部一个慢慢往外部传递异常。
如果内部的异常已经被捕获且处理,那么内部的异常就不会进行传递了。
二、异常利用
我们在使用字典的时候,往往可能会出现调用的字典的关键词并不存在的情况,那么直接就会报错了。我们以前会使用if语句进行处理,来判断每一个关键词在调用之前,是否存在的判断。
注意:python中大小写是敏感的,要注意调用的时候,大小写的正确性。
1.判断键是否存在
原有判断字典键值的方式,防止程序异常
#调用字典输出,直接使用if语句进行判断
if "aa" in dic1:
print(dic1["aa"])
else:
print("关键词不存在")
利用异常捕获,来简化代码。
try:
print(dic1["aa"])
print(dic1["BB"])
except KeyError:
print("关键词不存在,抛出异常")
2.判断类方法是否存在
类的异常利用,老的模式下的类的属性是否存在的判断
mc=MyClass()
if(hasattr(MyClass,"abc")):
mc.abc()
else:
print("属性不存在")
新式的类属性调用的判断
采用异常捕获的情况来进行
try:
mc.abc()
mc.defd()
except:
print("属性方法不存在")
三、总结强调
1.掌握异常栈的跟踪。
2.掌握异常的利用,来优化代码,排除未知异常。
3.掌握try捕获异常的基本形式。
4.所有异常捕获后,抛出的异常,都是异常对象。