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
若沒(méi)異常沒(méi)執(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") ?# 打開(kāi)文件 ? ? 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,這種類(lèi)型的說(shuō)法是有的。2014-10-10Python寫(xiě)腳本常用模塊OS基礎(chǔ)用法詳解
這篇文章主要介紹了Python寫(xiě)腳本常用模塊OS基礎(chǔ)用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python實(shí)現(xiàn)簡(jiǎn)單聊天室功能 可以私聊
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單聊天室功能,可以進(jìn)行私聊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07基于Python實(shí)現(xiàn)的ID3決策樹(shù)功能示例
這篇文章主要介紹了基于Python實(shí)現(xiàn)的ID3決策樹(shù)功能,簡(jiǎn)單描述了ID3決策樹(shù)的相關(guān)概念,并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)ID3決策樹(shù)的具體定義與使用技巧,需要的朋友可以參考下2018-01-01Python實(shí)戰(zhàn)購(gòu)物車(chē)項(xiàng)目的實(shí)現(xiàn)參考
今天小編就為大家分享一篇關(guān)于Python實(shí)戰(zhàn)購(gòu)物車(chē)項(xiàng)目的實(shí)現(xiàn)參考,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02Python區(qū)塊鏈創(chuàng)建Genesis Block教程
這篇文章主要為大家介紹了Python區(qū)塊鏈創(chuàng)建Genesis Block教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05python argparse模塊通過(guò)后臺(tái)傳遞參數(shù)實(shí)例
這篇文章主要介紹了python argparse模塊通過(guò)后臺(tái)傳遞參數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python 過(guò)濾錯(cuò)誤log并導(dǎo)出的實(shí)例
今天小編就為大家分享一篇Python 過(guò)濾錯(cuò)誤log并導(dǎo)出的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12