try…except…finally
這是 python 中最常用的異常處理結構,用于捕獲異常并執行相應的處理邏輯。try 塊包含要執行的代碼,except 塊包含捕獲異常后的處理邏輯,finally 塊包含無論是否發生異常都會執行的代碼。例如:
try: # 執行代碼 except Exception as e: # 捕獲異常并處理 finally: # 無論是否發生異常都會執行的代碼
登錄后復制
raise
raise 語句用于拋出異常,可以指定要拋出的異常類型和異常信息。例如:
raise ValueError("無效的參數值")
登錄后復制
assert
assert 語句用于檢查某個條件是否成立,如果不成立則拋出 AssertionError 異常。例如:
assert x > 0, "x must be greater than 0"
登錄后復制
自定義異常
你可以創建自己的異常類,繼承自 Exception 類。例如:
class MyError(Exception): pass raise MyError("我的錯誤")
登錄后復制
使用 logging 模塊記錄異常
logging 模塊可以用來記錄異常信息。例如:
import logging try: # 執行代碼 except Exception as e: logging.error("發生異常", exc_info=True)
登錄后復制
使用上下文管理器處理異常
上下文管理器是一種用來簡化異常處理的機制。例如:
with open("file.txt", "r") as f: # 執行代碼
登錄后復制
如果在 with 塊中發生異常,則會自動關閉文件 f。
使用異常來控制程序流程
異常也可以用來控制程序流程。例如,你可以使用異常來實現循環或分支。例如:
while True: try: # 執行代碼 except KeyboardInterrupt: break
登錄后復制
使用異常來進行單元測試
異常也可以用來進行單元測試。例如,你可以使用異常來檢查函數是否拋出了正確的異常。例如:
import unittest class MyTestCase(unittest.TestCase): def test_my_function(self): with self.assertRaises(ValueError): my_function(-1)
登錄后復制
上述技巧可以幫助你更好地處理異常,提高代碼的健壯性。