異常捕獲
a、全局捕獲
經過全局的接口,將捕獲代碼集中寫在一個地方,能夠利用接口有:vue
- window.addEventListener(‘error’) / window.addEventListener(「unhandledrejection」) / document.addEventListener(‘click’) 等
- 框架級別的全局監聽,例如aixos中使用interceptor進行攔截,vue、react都有本身的錯誤採集接口
- 經過對全局函數進行封裝包裹,實如今在調用該函數時自動捕獲異常
- 對實例方法重寫(Patch),在原有功能基礎上包裹一層,例如對console.error進行重寫,在使用方法不變的狀況下也能夠異常捕獲
b、單點捕獲
在業務代碼中對單個代碼塊進行包裹,或在邏輯流程中打點,實現有針對性的異常捕獲:react
- try…catch
- 專門寫一個函數來收集異常信息,在異常發生時,調用該函數
- 專門寫一個函數來包裹其餘函數,獲得一個新函數,該新函數運行結果和原函數如出一轍,只是在發生異常時能夠捕獲異常