Python基礎(chǔ)之語法錯誤和異常詳解
一、
Python assert(斷言)用于判斷一個表達式,在表達式條件為 false 的時候觸發(fā)異常。
二、異常
即便 Python 程序的語法是正確的,在運行它的時候,也有可能發(fā)生錯誤。運行期檢測到的錯誤被稱為異常
三、異常處理
3.1 try/except
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("其他未知異常")
3.2 try/except ... else
# 異常的其他結(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 包含的代碼塊沒有異常,執(zhí)行else 里面的代碼") finally: print("執(zhí)行finally 的代碼,通常用于釋放資源")
3.3 try-finally
s = "a" try: int(s) except ValueError as e: print(e) finally: print("執(zhí)行finally 的代碼,通常用于釋放資源")
四、拋出異常
4.1 raise
# 主動觸發(fā)異常 try: raise TypeError("這個異常是主動觸發(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)
六、斷言 assert
程序某處判斷結(jié)果,如果判斷結(jié)果為 False; 拋出 AssertionError, 效果相當(dāng)于 if 進行判斷,再拋出異常
assert 1 == 2 if 1 != 2: raise AssertionError
到此這篇關(guān)于Python基礎(chǔ)之錯誤和異常詳解的文章就介紹到這了,更多相關(guān)Python錯誤和異常內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。