十六 Python之異常

2021-10-25 09:40:10 字數 3112 閱讀 3831

當檢測到⼀個錯誤時,直譯器就⽆法繼續執⾏了,反⽽出現了⼀些錯誤的提示,這就是所謂的"異常"。例如:以 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...