python學習筆記 七 異常

2021-10-04 11:28:08 字數 2284 閱讀 6023

3. 自定義異常

4. 警告

在實際開發中,往往不會出現乙個系統編寫下來,沒有出現任何乙個bug。為處理這種會出現錯誤的地方,如除數為零的除法,python提供了非常強大的機制————異常處理機制。

python使用異常物件來表示程式異常狀態,並在遇到錯誤時引發異常。異常物件未被處理(或捕獲)是,程式將終止執行並顯示一條異常錯誤訊息(traceback)。

要引發異常,可使用raise語句,並將乙個類(必須是exception的子類)或實列作為引數。將類作為乙個引數時,將自動建立乙個例項。如:

raise attributeerror      ——> 表示引發了乙個異常

raise attributeerror(

'引用屬性或給它賦值失敗!!!'

)  ——> 表示引發乙個異常,並新增了錯誤訊息提示。

try

:raise exception(

'發起乙個異常'

)except exception:

print

('程式執行產生了乙個異常'

)else

:print

('什麼異常也沒發生'

)finally

:print

('不管是否發生了異常都會執行該finally語句塊'

)

try/except:最簡單的異常捕獲並處理的語句,在該語句中,except可以有多個,也可以將多個異常全部寫到乙個except語句後面。如:except (oserror,attributeerror,indexerror):pass

else:else是在程式一次執行try語句塊中沒有發生任何異常時,**才會執行else中的語句。

finally:不管程式是否發生了異常,都會執行該finally語句塊。

注意:在異常處理過程中,try/except語句可以和else、finally搭配使用,也可以不建立else和finally語句。如果要捕獲所有異常,可以在except語句後面用exception或者什麼也不寫來捕獲所有異常。但是一般建議使用exception。

在乙個函式中,如果異常沒**獲或捕獲後又重新引發,將從函式向外傳播到呼叫函式的地方。如果一直沒**獲,異常將向程式的最頂層傳播。

在**編寫中,我們通常想知道是那個物件或那個值引發了異常,方便進行程式除錯,我們可以在異常捕獲語句的except後面加上as語句。如:

try:.

...except

(exception,oserror)

as e:

print

(e)

該斷**將輸出發生異常時的物件。

在實際開發中,往往python中提供的異常滿足不了業務需求,辣麼怎麼辦呢? python中可以自定義異常來滿足那些特殊的需求,並通過視同raise語句來呼叫。辣麼如何建立自定義異常呢?異常也是乙個類,只不過屬於乙個特殊的類,但是必須直接或間接地繼承exception類。如:

class

myexception

(exception)

:def

_init__

(self,param)

:#__init__為初始化函式

print

(f' 引發了異常!!!'

)x =

1raise myexception(x)  ——>

1引發了異常!!!

如果你只想用於指出了**超出了你的設想,辣麼可以傳送乙個警告,並且不影響程式的執行。可以使用warnings模組中的函式warn。如:

warn(『這是乙個警告,表示**執行超出了預想!!!』)

如果其他**在使用你的模組時,可使用warnings模組中的函式filterwarnings來抑制你發出的警告(或特定型別的警告),並指定要採取的措施,如「error」或「ignore(忽略所有)」。

warnings.filterwarnings(action,category=warning,…)    ——> 用於過濾警告

warnings.warn(action, category=none)          ——> 用於發出警告

Python學習筆記(七) 異常處理

異常處理部分,只是很粗略的看了一遍。著重記錄try except塊,和if else類似,不過try是異常控制的,一旦發生異常,跳過其他未執行的語句,直接執行except塊中的內容。知道捕獲多種異常的方法,分別處理不同異常的方法,捕獲所有異常的方法。finally語句 無論程式是否發生異常,fina...

Python學習筆記 七 異常處理

這篇文章將會介紹 python 中異常及其處理方法 異常是一種非正常狀態,它表示程式在執行過程中發生錯誤 在實際情況中,可能會有多種原因導致程式出現異常狀態,而每種異常狀態都會由乙個異常物件表示 當程式出現異常狀態時,會丟擲乙個異常物件,如果該物件未 獲和處理,程式將會中止 在一般情況下,程式設計師...

python學習筆記異常處理(七)

異常處理是工作中編寫 必須要完成的內容,對於不符合預期的操作,程式總會出現異常情況,而對異常情況能夠妥善處理,是保證程式穩定性的關鍵。f input filename filename hone a.py ff open f traceback most recent call last file ...