當檢測到⼀個錯誤時,直譯器就⽆法繼續執⾏了,反⽽出現了⼀些錯誤的提示,這就是所謂的"異常"。例如:以 r ⽅式開啟⼀個不存在的⽂件。
: 可能發⽣錯誤的**
except
: 如果出現異常執⾏的**
需求:嘗試以 r 模式開啟⽂件,如果⽂件不存在,則以 w ⽅式開啟。
try
: f =
open
('test.txt'
,'r'
)except
: f =
open
('test.txt'
,'w'
)
try
: 可能發⽣錯誤的**
except 異常型別:
如果捕獲到該異常型別執⾏的**
try
:print
(num)
except nameerror:
print
('有錯誤'
)
注意:
如果嘗試執⾏的**的異常型別和要捕獲的異常型別不⼀致,則⽆法捕獲異常。
⼀般try下⽅只放⼀⾏嘗試執⾏的**。
當捕獲多個異常時,可以把要捕獲的異常型別的名字,放到except 後,並使⽤元組的⽅式進⾏書寫。
try
:print(1
/0)except
(nameerror, zerodivisionerror)
:print
('有錯誤'
)
try
:print
(num)
except
(nameerror, zerodivisionerror)
as result:
print
(result)
exception是所有程式異常類的⽗類。
try
:print
(num)
except exception as result:
print
(result)
else表示的是如果沒有異常要執⾏的**。
try
:print(1
)except exception as result:
print
(result)
else
:print
('我是else,是沒有異常的時候執⾏的**'
)
finally表示的是⽆論是否異常都要執⾏的**,例如關閉⽂件。
try
: f =
open
('test.txt'
,'r'
)except exception as result:
f =open
('test.txt'
,'w'
)else
:print
('沒有異常,真開⼼'
)finally
: f.close(
)
體驗異常傳遞
需求:嘗試唯讀⽅式開啟test.txt⽂件,如果⽂件存在則讀取⽂件內容,⽂件不存在則提示⽤戶即可。
讀取內容要求:嘗試迴圈讀取內容,讀取過程中如果檢測到⽤戶意外終⽌程式,則 except 捕獲異常並提示⽤戶。
import time
try:
f =open
('test.txt'
)try
:while
true
: content = f.readline()if
len(content)==0
:break
time.sleep(2)
print
(content)
except
:# 如果在讀取⽂件的過程中,產⽣了異常,那麼就會捕獲到
# ⽐如 按下了 ctrl+c
print
('意外終⽌了讀取資料'
)finally
: f.close(
)print
('關閉⽂件'
)except
:print
("沒有這個⽂件"
)
在python中,丟擲⾃定義異常的語法為 raise 異常類物件 。
需求:密碼⻓度不⾜,則報異常(⽤戶輸⼊密碼,如果輸⼊的⻓度不⾜3位,則報錯,即丟擲⾃定義異常,並捕獲該異常)。
# ⾃定義異常類,繼承exception
class
shortinputerror
(exception)
:def
__init__
(self, length, min_len)
: self.length = length
self.min_len = min_len
# 設定丟擲異常的描述資訊
def__str__
(self)
:return f'你輸⼊的⻓度是, 不能少於個字元'
defmain()
:try
: con =
input
('請輸⼊密碼:')if
len(con)
<3:
raise shortinputerror(
len(con),3
)except exception as result:
print
(result)
else
:print
('密碼已經輸⼊完成')
main(
)
python之異常處理 Python之異常處理
異常物件 請大家執行如下 a 100 0 print a 就會發現直譯器顯示如下的錯誤提示 traceback most recent call last file x.py line 1,in a 100 0 zerodivisionerror division by zero 大家要學會看直譯器...
python 丟擲異常 Python之異常
目標 01.異常的概念 程式開發時,很難將所有的特殊情況都處理的面面俱到,通過異常捕獲可以針對突發事件做集中的處理,從而保證程式的穩定性和健壯性 02.捕獲異常2.1 簡單的捕獲異常語法 try 嘗試執行的 except 出現錯誤的處理簡單異常捕獲演練 要求使用者輸入整數 try 提示使用者輸入乙個...
Python之異常及異常處理
在python中,萬物皆物件.所以異常在python中也是物件.當程式無法正常執行 時,就會丟擲乙個異常,程式就會執行回溯 traceback 來終止程式.但有時候這並 不是我們想要看到的,程式需要繼續執行下去,這時候就需要對異常進行處理.捕捉異常可以使用try except語句。try excep...