1.異常的概念
程式開發時,很難講所有的特殊情況都處理的面面俱到,通過異常捕獲可以針對突發事件做集中的處理,從而保證程式的穩定性和健壯性
2.捕獲異常
2.1簡單的捕獲異常語法
在程式開發中,如果對某些**的執行不能確定是否正確,可以增加try(嘗試)來捕獲異常
捕獲異常簡單的格式:
try:
嘗試執行的**
except:
出現錯誤的處理
try 嘗試下方編寫要嘗試的**,不確定是否能夠正常執行
except 如果不是,下方編寫嘗試失效
try:
num=int(input("請輸入整數:"))
except:
print("請重新輸入正確的整數:")
2.2錯誤型別捕獲
在程式執行時,可能會遇到不同型別的異常,並且需要針對不同型別的異常,做出不同的響應,這個時候,就需要捕獲錯誤型別了
語法:
try:
# 嘗試執行的**
pass
except 錯誤型別1:
# 針對錯誤型別1,對應的**處理
pass
except 錯誤型別2:
# 針對錯誤型別2,對應的**處理
pass
except exception as result:
print("未知錯誤 %s" % result)
捕獲未知錯誤:
在開發時,要預判到所有可能出現的錯誤,還是有一定難度的
如果希望程式無論出現任何錯誤,都不會因為 python直譯器丟擲異常而被終止,可以增加乙個except
語法結構:
except exception as result:
print("未知錯誤 %s" % result)
2.3捕獲異常完整**
在實際開發中,為了能夠處理複雜的異常情況,
try:
# 嘗試執行的**
pass
except 錯誤型別1:
# 針對錯誤型別1,對應的**處理
pass
except 錯誤型別2:
# 針對錯誤型別2,對應的**處理
pass
except exception as result:
print("未知錯誤 %s" % result)
else:
# 沒有異常才會執行的**
pass
finally:
# 無論是否有異常,都會執行的**
print("無論是否有異常,都會執行的**")
3.異常的傳遞
異常的傳遞------當函式/方法執行出現異常,會將異常傳遞給函式、方法的呼叫一方
如果傳遞到主程式,仍然沒有異常處理,程式才會被終止
在程式開發中,可以在主程式中增加異常捕獲
而在主函式中呼叫的其他函式,只要出現異常,都會傳遞到主函式的異常捕獲中
這樣就不需要在**中增加大量的異常捕獲,能夠保證**的整潔
def demo1():
return int(input("輸入整數:"))
def demo2():
return demo1()
try:
# 利用異常的傳遞性,在主程式捕獲異常
print(demo2())
except exception as result:
print("未知異常%s"% result)
4.丟擲異常raise異常
python中提供了乙個exception異常類,在開發時,如果滿足特定業務需求時,希望丟擲異常,可以:
1.建立乙個exception的物件
2.使用raise關鍵字丟擲異常物件
def input_password():
# 1提示使用者輸入密碼
pwd=input("請輸入密碼:")
# 2.判斷密碼長度》=8,返回使用者輸入的密碼
if len(pwd)>=8:
return pwd
# 3.如果<8 主動丟擲異常
print("主動丟擲異常")
# 建立異常物件,可以使用字串資訊作為引數
ex=exception("密碼長度不夠")
# 主動丟擲異常
raise ex
#提示使用者輸入密碼
try:
print(input_password())
except exception as result:
print(result)
python異常處理 Python 異常處理
使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...
python異常舉例 Python異常處理
1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...
python異常處理
當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...