Python教程9
阿新 • • 發佈:2018-11-12
Coding 代碼 %d pri 輸入密碼 一個 NPU 錯誤代碼 根據
Python教程9
1.異常
# -*-coding:utf-8-*- """ 1.異常:程序運行時,如果python解釋器遇到一個錯誤,會停止程序的執行,並提示一些錯誤的信息 這就是異常 2.程序停止執行並且提示錯誤信息這個動作,我們通常稱之為:拋出異常 3.程序開發時,很難將所有的特殊情況都處理到,通過異常捕獲,可以針對突發事件做幾種處理 ,從而保證程序的穩定性和健壯性 """ """ 捕獲異常的語法: 1.如果在程序開發中,對某些代碼的執行不能確定是否正確,可以增加try()來捕獲異常 2.語法格式如下: try: 嘗試執行的代碼 except: 出現錯誤的處理""" # try語法,執行錯誤不會停止程序的執行 try: # 不確定能否正確執行的代碼 num = int(input("請輸入整數:")) print("你的輸入:%d" % num) except: # 錯誤代碼的處理 print("請輸入正確的整數") print("-" * 50) # 錯誤類型的捕獲: # 用戶輸入整數,使用8除以輸入整數,並且輸出 print("錯誤類型的捕獲演示") try: num1 = int(input("請輸入整數:")) result = 8 / num1 print(result) exceptZeroDivisionError: # 報錯類型的第一個單詞 print("除0錯誤") except ValueError: print("請輸入正確的整數:") # 捕獲未知錯誤 print("捕獲未知錯誤演示----------") try: num2 = int(input("請輸入整數:")) result = 8 / num2 print(result) except ValueError: print("請輸入正確的整數:") except Exception as result1: print("未知錯誤 %s" % result1)""" 異常捕獲的完整語法: try: 嘗試執行的代碼 except 錯誤類型1 錯誤處理 except (錯誤類型1,錯誤類型2) 錯誤處理 except Exception as result: 未知錯誤處理 else: 沒有異常時執行的代碼 finally: 無論是否異常,都會執行的代碼 """ print("完整異常語法演示----------") try: print("嘗試執行。。。。") num3 = int(input("請輸入整數:")) result = 8 / num3 print(result) except ValueError: print("請輸入正確的整數:") except Exception as result: print("未知錯誤 %s" % result) else: print("嘗試成功") finally: print("無論是否成功,都會執行的代碼")
2.異常的傳遞,主動拋出異常
# -*-coding:utf-8-*- """ 異常的傳遞:當函數/方法執行出現異常,會將異常傳遞給函數/方法的調用一方 如果傳遞到主程序,仍然沒有異常處理,程序才會終止 提示: 1.在開發中,可以在主函數中增加異常捕獲 2.而主函數調用其他函數,只要出現異常都會傳遞到主函數的遺產捕獲中 3.這樣不需要代碼中,增加大量的異常捕獲,保證代碼的整潔 """ 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異常類 1.創建一個Exception對象 2.使用raise關鍵字拋出異常 示例:提示用戶輸入密碼,若長度小於8,拋出異常 """ print("**********主動拋出異常演示************") def input_password(): # 提示輸入密碼 pwd = input("請輸入密碼:") # 判斷密碼長度>=8 if len(pwd) >= 8: return pwd # 如果<8,主動拋出異常 print("主動拋出異常") # 創建異常對象 ex = Exception("密碼長度不夠") # 主動拋出異常 raise ex try: print(input_password()) # 提示不用try去捕獲異常,此行代碼報什麽錯誤 except Exception as result: print(result)
Python教程9