python異常處理并調(diào)試
前言:
異常是錯(cuò)誤出現(xiàn)時(shí),可以在正常的控制流程之外采取的行為。


一、try-except

try:
? ? age = int(input("請(qǐng)輸入年齡:"))
? ? if age >= 18:
? ? ? ? print("你已成年")
? ? else:
? ? ? ? print("你未成年")
except ValueError as error:
? ? print("輸入不合法")
? ? print(error)
print("程序結(jié)束")請(qǐng)輸入年齡:abc
輸入不合法
invalid literal for int() with base 10: 'abc'
程序結(jié)束
二、try-except-else
若沒異常沒執(zhí)行except,則執(zhí)行else里的語(yǔ)句

try:
? ? age = int(input("請(qǐng)輸入年齡:"))
except ValueError as error:
? ? print("輸入不合法")
else:
? ? if age >= 18:
? ? ? ? print("你已成年")
? ? else:
? ? ? ? print("你未成年")
? ? ? ??
print("程序結(jié)束")請(qǐng)輸入年齡:a
輸入不合法
程序結(jié)束
三、try-except-finally
finally 無(wú)論是否發(fā)生異常,都得執(zhí)行,如關(guān)閉文件
try:
? ? file = open("text.txt", "w") ?# 打開文件
? ? s = "hello world"
? ? file.write(s) ?# 操作文件
except:
? ? print("操作異常")
finally: ?# 無(wú)論是否發(fā)生異常,都得執(zhí)行
? ? file.close() ?# 關(guān)閉文件
? ? print("關(guān)閉文件")四、處理多個(gè)異常
方法一:
try:
? ? age = int(input("請(qǐng)輸入年齡:"))
? ? x = 10 / age
except ValueError:
? ? print("請(qǐng)輸入整數(shù)")
except ZeroDivisionError:
? ? print("年齡不能為0")
else:
? ? print(f"age is {age}")
? ? print(f"x is {x}")方法二:
try:
? ? age = int(input("請(qǐng)輸入年齡:"))
? ? x = 10 / age
except (ValueError, ZeroDivisionError):
? ? print("請(qǐng)輸入合理的年齡")
else:
? ? print(f"age is {age}")
? ? print(f"x is {x}")五、raise主動(dòng)拋出異常
try語(yǔ)句中,遇到了異常才會(huì)拋出異常
raise是為了主動(dòng)拋出異常
def is_adult(age):
? ? if age < 18:
? ? ? ? raise ValueError("你還未成年")
try:
? ? age = int(input("請(qǐng)輸入年齡:"))
? ? is_adult(age) ?# 已經(jīng)拋出<18的異常,except不會(huì)執(zhí)行。如果是其他abc異常,仍會(huì)執(zhí)行except
except ValueError as e:
? ? print(e)
print("continue")請(qǐng)輸入年齡:1
你還未成年
continue
到此這篇關(guān)于python異常處理并調(diào)試的文章就介紹到這了,更多相關(guān)python異常處理調(diào)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
跟老齊學(xué)Python之用while來(lái)循環(huán)
while,翻譯成中文是“當(dāng)...的時(shí)候”,這個(gè)單詞在英語(yǔ)中,常常用來(lái)做為時(shí)間狀語(yǔ),while ... someone do somthing,這種類型的說(shuō)法是有的。2014-10-10
python實(shí)現(xiàn)簡(jiǎn)單聊天室功能 可以私聊
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單聊天室功能,可以進(jìn)行私聊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
基于Python實(shí)現(xiàn)的ID3決策樹功能示例
這篇文章主要介紹了基于Python實(shí)現(xiàn)的ID3決策樹功能,簡(jiǎn)單描述了ID3決策樹的相關(guān)概念,并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)ID3決策樹的具體定義與使用技巧,需要的朋友可以參考下2018-01-01
Python實(shí)戰(zhàn)購(gòu)物車項(xiàng)目的實(shí)現(xiàn)參考
今天小編就為大家分享一篇關(guān)于Python實(shí)戰(zhàn)購(gòu)物車項(xiàng)目的實(shí)現(xiàn)參考,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02
Python區(qū)塊鏈創(chuàng)建Genesis Block教程
這篇文章主要為大家介紹了Python區(qū)塊鏈創(chuàng)建Genesis Block教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
python argparse模塊通過(guò)后臺(tái)傳遞參數(shù)實(shí)例
這篇文章主要介紹了python argparse模塊通過(guò)后臺(tái)傳遞參數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Python 過(guò)濾錯(cuò)誤log并導(dǎo)出的實(shí)例
今天小編就為大家分享一篇Python 過(guò)濾錯(cuò)誤log并導(dǎo)出的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12

