python中異常棧跟蹤與異常利用

  • 2019 年 10 月 6 日
  • 筆記

知識回顧:

異常類型結構:

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.所有異常捕獲後,拋出的異常,都是異常對象。