python中异常栈跟踪与异常利用

2019-09-24 14:53:13 浏览数 (2)

知识回顾:

异常类型结构:

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.所有异常捕获后,抛出的异常,都是异常对象。

0 人点赞