Python學習筆記 異常

2021-08-20 17:54:49 字數 2797 閱讀 1234

1--異常概念

。--程式在執行是,如果python直譯器遇到乙個錯誤,會停止程式的執行,並且提示一些錯誤資訊,這就是異常

。--程式停止執行並且提示錯誤資訊這個動作,我們稱之為:丟擲(raise)異常

。--程式開發是,很難將所有的特殊情況都處理的面面俱到,通過一異常捕獲可以針對突發事件做集中的處理,從而保證程式的穩定性和健壯性

2--捕獲異常

。--簡單的捕獲異常語法

--在程式開發中,如果對某些**的執行不能確定是否正確,可以增加try(嘗試)來捕獲異常

--捕獲異常最簡單的語法格式:

try:

嘗試執行的**

except:

出現錯誤的處理

--try嘗試,下方編寫要嘗試**,不確定是否能夠正常執行的**

--except 如果不是,下方編寫嘗試失敗後執行的**

例:try:

num=int(input("請輸入乙個整數:"))

except:

print("請輸入乙個整數")

。--錯誤型別捕獲

--在程式執行時,可能會遇到不同型別的異常,並且需要針對不同型別的異常,做出不同的相應,這時,就需要捕獲錯誤型別了

--語法:

try:

#嘗試執行的**

pass

except 錯誤型別1:

#針對錯誤型別1,對應的**處理

pass

except(錯誤型別2,錯誤型別3):

#針對錯誤型別2和3,對應的**處理

pass

except exception as result:

print("未知錯誤:%s" %result)

--當python直譯器丟擲異常時,最後一行錯誤資訊的第乙個單詞,就是錯誤型別

。--捕獲未知錯誤

--在開發時,要預判到所有可能出現的錯誤,還是有一定難度的

--如果希望程式無論出現任何錯誤,都不會因為python直譯器丟擲異常而被終止,可以再增加乙個except

--語法:

except exception as result:

print("未知錯誤:%s" %result)

。--異常捕獲完整語法

--實際開發中,為了能夠處理複雜的異常情況

--語法:

try:

#嘗試執行的**

pass

except 錯誤型別1:

#針對錯誤型別1,對應的**處理

pass

except(錯誤型別2,錯誤型別3):

#針對錯誤型別2和3,對應的**處理

pass

except exception as result:

#列印錯誤資訊

print("未知錯誤:%s" %result)

else:

#沒有出現異常才會執行的**

pass

finally:

#無論是否有異常,都會執行的**

print("無論是否有異常,都會執行的**")

--else 只有在沒有異常時才會執行的**

--finally 無論是否有異常,都會執行的**

3--異常的傳遞

。--異常的傳遞--當函式/方法執行出現異常,會將異常傳遞給函式/方法的呼叫一方

。--如果傳遞到主程式,仍然沒有異常處理,程式才會被終止

--在開發中,可以在主函式中增加異常捕獲

--而在主函式中呼叫的其他函式,只要出現異常,都會傳遞到主函式異常捕獲中

--這樣就不需要在**中,增加大量的異常捕獲,能夠保證**的整潔

例:def demo1():

return int(print("請輸入乙個整數:"))

def demo2():

return demo1()

try:

print(demo2)

except valueerror:

print("請輸入正確的整數")

except exception as result:

print("未知錯誤:%s"%result)

4--丟擲raise異常

。--在開發中,除了**執行出錯python直譯器會丟擲異常之外

。--還可以根據應用程式特有的業務需求主動丟擲異常

示例:-提示使用者輸入密碼,如果長度少於8,丟擲異常

-使用者登入模組、輸入密碼函式

**注意:當前函式只負責提示使用者輸入函式,如果密碼長度不正確,需要其他的函式進行額外處理

因此可以丟擲異常,有其他取藥處理的函式捕獲異常

。--丟擲異常使用語法

--python中提供了乙個exception異常類

--在開發市,如果滿足特定業務需求時,希望丟擲異常,可以:

-建立乙個exception的物件

-使用raise關鍵字丟擲異常

例:def input_password():

#提示使用者輸入密碼

pwd=input("請輸入密碼:")

#判斷密碼長度》=8,返回使用者輸入的密碼

if len(pwd)>=8:

return pwd

#如果<8 主動丟擲異常

print("主動丟擲異常")

#建立異常物件

ex=exception("密碼長度不夠")

#exception(*args)

#主動丟擲異常

raise ex

try:

print(input_password())

except exception as result:

print(result)

Python 異常 學習筆記

python 標準異常總結 try 和 try finally 語句 try 下面是檢測範圍,如發生異常停止在第乙個異常的位置 fh open testfile w fh.write 這是乙個測試檔案,用於測試異常 except oserror as reason 下面是出現異常後輸出的 print...

python學習筆記 異常

baseexception systemexit keyboardinterrupt generatorexit exception stopiteration standarderror buffererror arithmeticerror floatingpointerror overflow...

Python學習筆記 異常

python的執行時錯誤稱為異常 1.語法錯誤 軟體的結構上有錯誤而導致不能被直譯器解釋或不能被編譯器編譯。2.邏輯錯誤 由於不完整或不合法的輸入所致,也可能是邏輯無法生存 計算或者輸出結果需要的過程無法執行等。python異常是乙個物件,表示錯誤或意外情況 在python檢測到乙個錯誤時,將觸發乙...