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檢測到乙個錯誤時,將觸發乙...