React Native錯誤捕捉與處理

經(jīng)常使用發(fā)行包進(jìn)行測試的開發(fā)者們可能會發(fā)現(xiàn),在發(fā)行版本中,如果出現(xiàn)了腳本錯誤,還是會直接閃退。我們可能會希望捕獲這種錯誤,給予用戶合理的提示,并采集錯誤詳情幫助后續(xù)版本改進(jìn)。這時候可以使用如下的代碼:

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


發(fā)行版本啟動應(yīng)用后10秒,通過adb logcat或XCode可以看到Just ignore的輸出,并沒有觸發(fā)閃退,說明截獲成功。


注意

盡管可以截獲全局錯誤,但如果錯誤來自于render()函數(shù)或者組件的生命周期,你的應(yīng)用可能也無法從錯誤狀態(tài)恢復(fù)并繼續(xù)運行,如果你試圖繼續(xù)運行,可能會發(fā)生更多的錯誤。因此建議此方法只用于錯誤收集和合理的提示,而不要當(dāng)做一般性的錯誤處理辦法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容