Python使用異常處理錯誤
- BaseException
- SystemExit/Keyboard/Interrupt/GeneratorExit
- Exception
此鏈接python官方文檔底部有異常等級圖看參考
Python使用異常的常見場景
- 網絡請求(超時、連接錯誤)
- 資源訪問(權限問題,資源不存在)
- 代碼邏輯(越界訪問,KeyError等)
Python處理異常模板:
try:
pass
except (Exception1, Exception2) as e:
pass
else:
pass
finally:
pass
Python如何自定義異常
- 繼承Exception實現自定義異常,不繼承BaseException是因爲和Exception同級的也有幾個,而繼承BaseException會導致捕捉到這幾個異常錯誤,比如經典的ctrl+c觸發的KeyboardInterrupt
- 給異常添加一些附加信息
- 處理業務相關的特定異常
raise MyException
class MyException(Exception):
pass
try:
raise MyException('my exception')
except MyException as e:
print(e)