來源:AI有溫度
大家好,我是陽哥。
異常處理在工程文件中必不可少,今天就帶大家徹底搞定異常處理。
在python
中我們使用try
和except
關鍵字來捕獲異常:
try下寫:不確定能不能正常執行的代碼
except下寫:如果try下的代碼執行失敗時要執行的代碼
要求用戶輸入整數:
try:
# 不確定能不能正常執行的代碼
num = int(input("請輸入一個數字:"))
except:
# 如果try下的代碼執行失敗時要執行的代碼
print("請輸入一個正確的數字!")
輸入:`z`
輸出:請輸入一個正確的數字!
在程序執行時,可能會報不同的錯誤。如果需要針對不同類型的異常做出不同的響應,就需要指定錯誤類型了:
try:
#嘗試執行的代碼
pass
except 錯誤類型1:
#針對錯誤類型1,對應的代碼處理
pass
except(錯誤類型2,錯誤類型3):
#針對錯誤類型2和3對應的代碼處理
pass
except Exception as result:
# 除了123之外的錯誤
print("未知錯誤 %s" %result)
提示用戶輸入一個整數,使用8除以用戶輸入的整數並且輸出:
while True:
try:
# 提示用戶輸入一個整數
num = int(input("輸入一個整數:"))
# 輸入不是整數就報錯,輸入0也是報錯,這裡我們需要捕獲異常
result = 8 / num
print(result)
except ZeroDivisionError:
print("錯誤,除數不能為0")
except ValueError:
print("請輸入數字")
# 捕獲未知錯誤
except Exception as result:
print("未知錯誤 %s" %result)
異常捕獲中,也可以使用else
與finally
關鍵字:
else:沒異常會執行的代碼
finally:無論是否有異常,都會執行的代碼
異常捕獲的完整語法:
try:
# 提示用戶輸入一個整數
num = int(input("輸入一個整數:"))
# 輸入不是整數就報錯,輸入0也是報錯,這裡我們需要捕獲異常
result = 8 / num
print(result)
except ValueError:
print("請輸入數字")
except Exception as result:
print("未知錯誤%s" % result)
else:
print("嘗試成功!")
finally:
print("無論是否出現錯誤都會執行的代碼")
輸入:`z`
輸出:請輸入數字
輸出:無論是否出現錯誤都會執行的代碼
從產生異常的地方開始傳遞到調用異常的地方,如果一直沒有處理異常,就會一直傳遞到主函數,然後停止程序並報出異常信息。
def demo1():
return int(input("請輸入一個整數:"))
def demo2():
return demo1()
print(demo2())
輸入:`z`
報錯信息會一直傳遞到主程序,然後停止:
所以說,只需要在主程序中做一個異常處理就可以完成代碼的異常處理。
def demo1():
return int(input("輸入整數:"))
def demo2():
return demo1()
#利用異常的傳遞性,在主程序捕獲異常
try:
print(demo2())
except Exception as result:
print("程序出現了%s錯誤"%(result))
python中提供了Exception
異常類。在開發時,如果滿足特定業務的需求希望拋出異常時,可以創建一個Exception
的對象,使用raise
關鍵字拋出異常對象。
提示用戶設置密碼,如果用戶輸入長度<8,則拋出異常:
def input_password():
#1.提示用戶輸入密碼
result =input("請輸入密碼")
#2.判斷密碼長度 >=8 ,返回用戶輸入的密碼
if len(result) >=8:
return result
#3.如果<8 主動拋出異常
print("主動拋出異常!")
#1>創建異常對象 -可以使用錯誤信息字符串作為參數
ex =Exception("密碼長度不夠!")
#2> 主動拋出異常
raise ex
#提示用戶輸入密碼
try:
print(input_password())
except Exception as result:
print(result)
恭喜結業,以上為Python全部的異常處理內容!但是還需要你在實際場景中多試多練,才能靈活應用!
-------- End --------
圖解Pandas-圖文01-數據結構介紹
圖解Pandas-圖文02-創建數據對象
圖解Pandas-圖文03-讀取和存儲Excel文件
圖解Pandas-圖文04-常見的數據訪問
圖解Pandas-圖文05-常見的數據運算
圖解Pandas-圖文06-常見的數學計算
圖解Pandas-圖文07-常見的數據統計
圖解Pandas-圖文08-常見的數據篩選