try/except從句。
將可能觸發異常產生的**放到try模組裡,而處理異常的**會在except語句塊裡實現。如:
try
: file=
open
('test.txt'
,'rb'
)except ioerror as e:
print
('an ioerror occured. {}'
.format
(e.args[-1
]))輸出:
an ioerror occured. no such file or directory
try
: file=
open
('test.txt'
,'rb'
)except (ioerror,eoferror) as e:
print
('an ioerror occured. {}'
.format
(e.args[-1
]))
或者:
try
: file=
open
('test.txt'
,'rb'
)except eoferror as e:
print
('an ioerror occured. {}'
.format
(e.args[-1
])) raise e
except ioerror as e:
print
('an ioerror occured. {}'
.format
(e.args[-1
])) raise e
try
: file=
open
('test.txt'
,'rb'
)except exception:
#列印一些異常日日誌
raise
在上面異常處理語句中,有try從句和except從句,我們還會使用第三個從句就是finally從句。在finally從句中的**不管異常是否觸發都將會被執行。可以被用來在指令碼結束執行後做清理工作。
比如:
try
: file=
open
('test.txt'
,'rb'
)except ioerror as e:
print
('an ioerror occured. {}'
.format
(e.args[-1
]))finally:
print
("this would be printed whether or not an error"
) 輸出:
an ioerror occured. no such file or directory
this would be printed whether or
not an error
如果在異常處理語句中,想讓一些**在沒有觸發異常的情況下執行,就要使用else從句了,為啥不直接把執行**放try裡呢,是因為如果放在try裡這段**的任何異常也會被try捕獲。
比如:
try
:print
('i am sure no error'
)except:
print
('exception'
)else
:print
("this would be printed if no error"
)finally:
print
("this would be printed every case"
)輸出:
i am sure no error
this would be printed if no error
this would be printed every case
python高階(異常處理)
python程式一旦發生錯誤,就從錯誤的位置停下來了,不會執行後面的內容。a 未定義的變數,nameerror print 我不會執行 該 不會執行 except nameerror try語句 異常 且 錯誤符合時執行 print 語法錯誤 else print try裡面 沒有錯誤時執行。pri...
Python高階 異常處理
就是不正常的情況,程式開發過程中錯誤和bug都是補充正常的情況 引發程式崩潰 try except 異常捕獲處理 try 1 可能發生異常的 except 2 發現異常後,立刻進入except,執行 2 else 3 程式正常執行進入這一行執行 finally 4 出現finally程式必定執行次行...
Python高階 異常處理
1.異常的定義 異常是錯誤發生的訊號,程式一旦出錯就會丟擲錯誤資訊,如果不及時處理就會程式就會隨之停止執行 異常有三部分組成 1 異常型別 2 異常追蹤 3 異常的值 2.異常的分類 1 語法錯誤 無法通過python直譯器解釋的語法 2 邏輯錯誤 3.異常的種類 attributeerror 訪問...