python異常處理并調(diào)試
前言:
異常是錯誤出現(xiàn)時,可以在正常的控制流程之外采取的行為。
一、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
若沒異常沒執(zhí)行except,則執(zhí)行else里的語句
try: ? ? age = int(input("請輸入年齡:")) except ValueError as error: ? ? print("輸入不合法") else: ? ? if age >= 18: ? ? ? ? print("你已成年") ? ? else: ? ? ? ? print("你未成年") ? ? ? ?? print("程序結束")
請輸入年齡:a
輸入不合法
程序結束
三、try-except-finally
finally 無論是否發(fā)生異常,都得執(zhí)行,如關閉文件
try: ? ? file = open("text.txt", "w") ?# 打開文件 ? ? s = "hello world" ? ? file.write(s) ?# 操作文件 except: ? ? print("操作異常") finally: ?# 無論是否發(fā)生異常,都得執(zhí)行 ? ? file.close() ?# 關閉文件 ? ? print("關閉文件")
四、處理多個異常
方法一:
try: ? ? age = int(input("請輸入年齡:")) ? ? x = 10 / age except ValueError: ? ? print("請輸入整數(shù)") 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) ?# 已經(jīng)拋出<18的異常,except不會執(zhí)行。如果是其他abc異常,仍會執(zhí)行except except ValueError as e: ? ? print(e) print("continue")
請輸入年齡:1
你還未成年
continue
到此這篇關于python異常處理并調(diào)試的文章就介紹到這了,更多相關python異常處理調(diào)試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實戰(zhàn)購物車項目的實現(xiàn)參考
今天小編就為大家分享一篇關于Python實戰(zhàn)購物車項目的實現(xiàn)參考,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02Python區(qū)塊鏈創(chuàng)建Genesis Block教程
這篇文章主要為大家介紹了Python區(qū)塊鏈創(chuàng)建Genesis Block教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05python argparse模塊通過后臺傳遞參數(shù)實例
這篇文章主要介紹了python argparse模塊通過后臺傳遞參數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04