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!

推薦閱讀: