浏览器里用是的祖传的 window.onerror
想实现遇到一些一秒发生几十遍导致游戏卡死的错误,可以直接重启游戏。
但是代码里的cc.game.restart()一直触发不了,这种情况要怎么处理?
let __handler;
if (window.onerror) { __handler = window.onerror;}
window.onerror = function (…args) {
this._onError(__handler, …args);
}.bind(this);
_errLength = 0;
_onError(handler, ...args){
this._errLength++;
//上报错误
if (handler) { handler(...args);}
if(this._errLength > 10){
this._errLength = 0;
cc.game.restart();
return;
}
}
_errLength每几秒会重置。