python異常處理並調試
前言:
異常是錯誤出現時,可以在正常的控制流程之外采取的行為。
一、try-except
try: age = int(input("請輸入年齡:")) if age >= 18: print("你已成年") else: print("你未成年") except ValueError as error: print("輸入不合法") print(error) print("程序結束")
請輸入年齡:abc
輸入不合法
invalid literal for int() with base 10: 'abc'
程序結束
二、try-except-else
若沒異常沒執行except,則執行else裡的語句
try: age = int(input("請輸入年齡:")) except ValueError as error: print("輸入不合法") else: if age >= 18: print("你已成年") else: print("你未成年") print("程序結束")
請輸入年齡:a
輸入不合法
程序結束
三、try-except-finally
finally 無論是否發生異常,都得執行,如關閉文件
try: file = open("text.txt", "w") # 打開文件 s = "hello world" file.write(s) # 操作文件 except: print("操作異常") finally: # 無論是否發生異常,都得執行 file.close() # 關閉文件 print("關閉文件")
四、處理多個異常
方法一:
try: age = int(input("請輸入年齡:")) x = 10 / age except ValueError: print("請輸入整數") except ZeroDivisionError: print("年齡不能為0") else: print(f"age is {age}") print(f"x is {x}")
方法二:
try: age = int(input("請輸入年齡:")) x = 10 / age except (ValueError, ZeroDivisionError): print("請輸入合理的年齡") else: print(f"age is {age}") print(f"x is {x}")
五、raise主動拋出異常
try語句中,遇到瞭異常才會拋出異常
raise是為瞭主動拋出異常
def is_adult(age): if age < 18: raise ValueError("你還未成年") try: age = int(input("請輸入年齡:")) is_adult(age) # 已經拋出<18的異常,except不會執行。如果是其他abc異常,仍會執行except except ValueError as e: print(e) print("continue")
請輸入年齡:1
你還未成年
continue
到此這篇關於python異常處理並調試的文章就介紹到這瞭,更多相關python異常處理調試內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!