【ReactNative】全局錯誤捕捉與處理



經常使用發行包進行測試的開發者們可能會發現,在發行版本中,如果出現了腳本錯誤,還是會直接閃退。我們可能會希望捕獲這種錯誤,給予用戶合理的提示,並採集錯誤詳情幫助後續版本改進。這時候可以使用如下的代碼:

require('ErrorUtils').setGlobalHandler(function(err) {
  // 做你自己的任何處理
});




實驗代碼如下:

require('react-native')
require('ErrorUtils').setGlobalHandler(function (err) {
  console.log('Just ignore');
});
setTimeout(()=>{
  throw new Error(‘Ouch');
}, 10000);

require('./src/app'); // 正常啓動app



發行版本啓動應用後10秒,通過adb logcat或XCode可以看到Just ignore的輸出,並沒有觸發閃退,說明截獲成功。

注意

儘管可以截獲全局錯誤,但如果錯誤來自於render()函數或者組件的生命週期,你的應用可能也無法從錯誤狀態恢復並繼續運行,如果你試圖繼續運行,可能會發生更多的錯誤。因此建議此方法只用於錯誤收集和合理的提示,而不要當做一般性的錯誤處理辦法。


參考鏈接http://bbs.reactnative.cn/topic/627/%E9%94%99%E8%AF%AF%E6%8D%95%E6%8D%89%E4%B8%8E%E5%A4%84%E7%90%86



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章