前言
哈嘍, 大家好, 我是了不起!
歡迎大家來觀看了不起的冒險(xiǎn)之旅. 為了方便起見, 文中以小知為名. 講述了不起在Python異世界的冒險(xiǎn)之旅.
白天冒險(xiǎn), 晚上學(xué)習(xí). 小知可是身體和心理沒有一刻不在路上. 在今夜首先了解什么是異常: 軟件程序在運(yùn)行過程中,可能會遇到能使其不能正常運(yùn)行的問題,我們稱之為異常,英文是:Exception . 然后, 我們會了解捕獲異常的四種方式
一、異常是什么
程序在運(yùn)行過程中發(fā)生的意外情況,稱為異常, 程序運(yùn)行時一旦出現(xiàn)了異常,將會導(dǎo)致程序立即終止,異常之后的代碼將無法繼續(xù)執(zhí)行,所以需要對異常進(jìn)行處理
異常機(jī)制本質(zhì)
- 當(dāng)程序出現(xiàn)異常,程序安全的退出、處理完后繼續(xù)執(zhí)行的機(jī)制
python中,引進(jìn)了很多用來描述和處理異常的類,稱為異常類. 異常類定義中包含了該類異常的信息和對異常進(jìn)行處理的方法.下面較為完整的展示了python中內(nèi)建異常類的繼承層次:
解決思路
異常解決的關(guān)鍵:定位當(dāng)發(fā)生異常時,解釋器會報(bào)相關(guān)的錯誤信息,并會在控制臺打印出相關(guān)錯誤信息. 我們只需按照從上到下的順序即可追溯(Trackback)錯誤發(fā)生的過程,最終定位引起錯誤的哪一行代碼.
實(shí)操代碼
#測試簡單的0不能做除數(shù)異常
#因?yàn)槿绻僭O(shè)成立,則說明3/0=0=>可以推導(dǎo)0*0=3,因?yàn)榻Y(jié)果不成立,因此假設(shè)不成立
#a=3/0
defa():
print("runina()start!")
num=1/0
print("runina()end!")
defb():
print("runinb()start!")
a()
print("runinb()end!")
defc():
print("runinc()start!")
b()
print("runinc()end!")
print("step1")
c()
print("step2")
結(jié)果輸出
從打印輸出結(jié)果來看, 最底層的方法(eg: a())出錯之后, 會在上層調(diào)用的方法位置處拋出異常. 因?yàn)殄e誤信息以棧的形式輸出, 因此最頂層的調(diào)用因?yàn)橄却蛴? 所以會先被我們看到. 因此對底層/最有用的信息一般位于最下面.
-
程序
+關(guān)注
關(guān)注
117文章
3792瀏覽量
81163 -
python
+關(guān)注
關(guān)注
56文章
4799瀏覽量
84817
發(fā)布評論請先 登錄
相關(guān)推薦
評論