import time
try:
f =open
('test.txt'
)try
:while
true
: content = f.readline()if
len(content)==0
:break
time.sleep(2)
print
(content)
finally
: f.close(
)print
('關閉檔案'
)except
:print
("沒有這個檔案"
)
執行結果:
in [26]
:import time
...:try:.
..: f =
open
('test.txt').
..:try:.
..:while
true:.
..: content = f.readline().
..:if
len(content)==0
:...
:break..
.: time.sleep(2)
...:
print
(content)..
.:finally:.
..: f.close().
..:print
('關閉檔案').
..:except:.
..:print
("沒有這個檔案").
..:finally:.
..:print
("最後的finally").
..:
******x---
>這是test.txt檔案中讀取到資訊
^c關閉檔案
沒有這個檔案
最後的finally
def
test1()
:print
("----test1-1----"
)print
(num)
print
("----test1-2----"
)def
test2()
:print
("----test2-1----"
) test1(
)print
("----test2-2----"
)def
test3()
:try
:print
("----test3-1----"
) test1(
)print
("----test3-2----"
)except exception as result:
print
("捕獲到了異常,資訊是:%s"
%result)
print
("----test3-2----"
) test3(
)print
("------華麗的分割線-----"
) test2(
)
執行結果:
如果try巢狀,那麼如果裡面的try沒有捕獲到這個異常,那麼外面的try會接收到這個異常,然後進行處理,如果外邊的try依然沒有捕獲到,那麼再進行傳遞。。。
如果乙個異常是在乙個函式中產生的,例如函式a---->函式b---->函式c,而異常是在函式c中產生的,那麼如果函式c中沒有對這個異常進行處理,那麼這個異常會傳遞到函式b中,如果函式b有異常處理那麼就會按照函式b的處理方式進行執行;如果函式b也沒有異常處理,那麼這個異常會繼續傳遞,以此類推。。。如果所有的函式都沒有處理,那麼此時就會進行異常的預設處理,即通常見到的那樣
注意觀察上圖中,當呼叫test3函式時,在test1函式內部產生了異常,此異常被傳遞到test3函式中完成了異常處理,而當異常處理完後,並沒有返回到函式test1中進行執行,而是在函式test3中繼續執行
python異常(概念 捕獲 傳遞 丟擲)
01.異常的概念 程式在執行時,如果python 直譯器遇到到乙個錯誤,會停止程式的執行,並且提示一些錯誤資訊,這就是異常 程式停止執行並且提示錯誤資訊這個動作,我們通常稱之為 丟擲 raise 異常 程式開發時,很難將所有的特殊情況都處理的面面俱到,通過異常捕獲可以針對突發事件做集中的處理,從而保...
python第三十課 異常 異常物件傳遞過程
演示異常物件傳遞的過程 往上 拋 並將其解決def func1 print func1.print 10 0 deffunc2 print func2.try func1 except exception as e print e def func3 print func3.func2 try fu...
python的異常有哪些 Python異常處理
python異常處理 什麼是異常處理?程式在執行過程 現了不可預知的錯誤 並且該錯誤沒有對應的處理機制,那麼就會以異常的形式表現出來 造成的影響就是整個程式無法正常執行 異常的結構 1.異常的型別 nameerror 2.異常的資訊 name abc is not defined 3.異常的位置 t...