Python assert(斷言)用于判斷一個(gè)表達(dá)式,在表達(dá)式條件為 false 的時(shí)候觸發(fā)異常。
即便 Python 程序的語(yǔ)法是正確的,在運(yùn)行它的時(shí)候,也有可能發(fā)生錯(cuò)誤。運(yùn)行期檢測(cè)到的錯(cuò)誤被稱為異常
try: # age_str = input("====>") # age = int(age_str) # l1 = [] # l1[2] d1 = {} d1["name"] except ValueError as e: print(e) except IndexError as e: print(e) except KeyError as e: print("KeyError:", e) except Exception as e: print("其他未知異常")
# 異常的其他結(jié)構(gòu) s = "a" s = 1 try: int(s) except ValueError as e: print(e) except KeyError as e: print(e) except IndexError as e: print(e) except Exception as e: print("捕獲未知異常") else: print("try 包含的代碼塊沒(méi)有異常,執(zhí)行else 里面的代碼") finally: print("執(zhí)行finally 的代碼,通常用于釋放資源")
s = "a" try: int(s) except ValueError as e: print(e) finally: print("執(zhí)行finally 的代碼,通常用于釋放資源")
# 主動(dòng)觸發(fā)異常 try: raise TypeError("這個(gè)異常是主動(dòng)觸發(fā)的") except TypeError as e: print(e)
自定義異常需要繼承自 BaseException; (Exception 也 繼承自 BaseException)
# 自定義異常 class MyException(BaseException): def __init__(self, msg): self.msg = msg def __str__(self): return "MyException:{}>".format(self.msg) try: raise MyException("自定義異常") except MyException as e: print(e)
程序某處判斷結(jié)果,如果判斷結(jié)果為 False; 拋出 AssertionError, 效果相當(dāng)于 if 進(jìn)行判斷,再拋出異常
assert 1 == 2 if 1 != 2: raise AssertionError
到此這篇關(guān)于Python基礎(chǔ)之錯(cuò)誤和異常詳解的文章就介紹到這了,更多相關(guān)Python錯(cuò)誤和異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:潛江 黑龍江 呂梁 銅川 阿里 株洲 常德 通遼
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python基礎(chǔ)之語(yǔ)法錯(cuò)誤和異常詳解》,本文關(guān)鍵詞 Python,基礎(chǔ),之,語(yǔ)法,錯(cuò)誤,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。