Python 解釋器
遇到 到一個錯誤,會中止程序的執行,而且提示一些錯誤信息,這就是 異常python
程序開發時,很難將 全部的特殊狀況 都處理的面面俱到,經過 異常捕獲 能夠針對突發事件作集中的處理,從而保證程序的 穩定性和健壯性函數
try(嘗試)
來 捕獲異常try: 嘗試執行的代碼 except: 出現錯誤的處理
try
嘗試,下方編寫要嘗試代碼,不肯定是否可以正常執行的代碼except
若是不是,下方編寫嘗試失敗的代碼try: # 提示用戶輸入一個數字 num = int(input("請輸入數字:")) except: print("請輸入正確的數字")
在程序執行時,可能會遇到 不一樣類型的異常,而且須要 針對不一樣類型的異常,作出不一樣的響應,這個時候,就須要捕獲錯誤類型了學習
語法以下:spa
try: # 嘗試執行的代碼 pass except 錯誤類型1: # 針對錯誤類型1,對應的代碼處理 pass except (錯誤類型2, 錯誤類型3): # 針對錯誤類型2 和 3,對應的代碼處理 pass except Exception as result: print("未知錯誤 %s" % result)
Python
解釋器 拋出異常 時,最後一行錯誤信息的第一個單詞,就是錯誤類型需求code
8
除以用戶輸入的整數而且輸出try: num = int(input("請輸入整數:")) result = 8 / num print(result) except ValueError: print("請輸入正確的整數") except ZeroDivisionError: print("除 0 錯誤")
Python
解釋器 拋出異常而被終止,能夠再增長一個 except
語法以下:對象
except Exception as result: print("未知錯誤 %s" % result)
提示:事件
- 有關完整語法的應用場景,在後續學習中,結合實際的案例會更好理解
- 如今先對這個語法結構有個印象便可
try: # 嘗試執行的代碼 pass except 錯誤類型1: # 針對錯誤類型1,對應的代碼處理 pass except 錯誤類型2: # 針對錯誤類型2,對應的代碼處理 pass except (錯誤類型3, 錯誤類型4): # 針對錯誤類型3 和 4,對應的代碼處理 pass except Exception as result: # 打印錯誤信息 print(result) else: # 沒有異常纔會執行的代碼 pass finally: # 不管是否有異常,都會執行的代碼 print("不管是否有異常,都會執行的代碼")
else
只有在沒有異常時纔會執行的代碼finally
不管是否有異常,都會執行的代碼開發
以前一個演練的 完整捕獲異常 的代碼以下:字符串
try: num = int(input("請輸入整數:")) result = 8 / num print(result) except ValueError: print("請輸入正確的整數") except ZeroDivisionError: print("除 0 錯誤") except Exception as result: print("未知錯誤 %s" % result) else: print("正常執行") finally: print("執行完成,可是不保證正確")
提示input
需求
demo1()
提示用戶輸入一個整數而且返回demo2()
調用 demo1()
demo2()
def demo1(): return int(input("請輸入一個整數:")) def demo2(): return demo1() try: print(demo2()) except ValueError: print("請輸入正確的整數") except Exception as result: print("未知錯誤 %s" % result)
raise
異常Python
解釋器會 拋出 異常以外示例

注意
Python
中提供了一個 Exception
異常類Exception
的 對象raise
關鍵字 拋出 異常對象需求
input_password
函數,提示用戶輸入密碼def input_password(): # 1. 提示用戶輸入密碼 pwd = input("請輸入密碼:") # 2. 判斷密碼長度,若是長度 >= 8,返回用戶輸入的密碼 if len(pwd) >= 8: return pwd # 3. 密碼長度不夠,須要拋出異常 # 1> 建立異常對象 - 使用異常的錯誤信息字符串做爲參數 ex = Exception("密碼長度不夠") # 2> 拋出異常對象 raise ex try: user_pwd = input_password() print(user_pwd) except Exception as result: print("發現錯誤:%s" % result)