这里的处理导致脚本不会继续执行,会黑屏,引擎不会针对每个 API 做特化处理,而是在绑定层对参数错误做统一的报错,并且中断 JS 的执行,你想象的游戏中的错误出现,而用户感知不到只是想象而已,绝大多数 API 调用错误都会导致表现的问题,只是严重与否。而在浏览器中其实也是一样的,JS 代码出错,就中断后面的 JS 代码执行,我们做的不过是再正常不过的错误处理。至于用户层代码写得是不是健壮,错误是必现还是偶发,引擎并不关心,我们只会忠实地报错。要达到你说的怎么玩都不宕机,不闪退,任何游戏引擎都做不到。






那样这个 bug 就被掩盖了,但因为逻辑已经错了,可能导致一些连锁的其它问题,最后导致开发团队完全摸不着头脑。
如果真的有修复不了的 bug,也应该是开发者收集到后,自己手动加 try catch 等保护。
确实有这个情况,不过我不打算做保护了。不是因为性能不允许,而是因为加了 try catch 后,调试器无法在出错时立刻断点。会断点在 catch 中(如果重新 throw)或者就只打印 error,这样不方便找到错误的地方。
另外死循环也有助于提醒用户这里已经出错了。否则很多人从不看报错的,到时又来喷引擎有 bug。
可不可以分调试模式和release模式区别对待,调试模式你就让它死循环,release模式就报个Error别让它死循环.
http://forum.cocos.com/t/bug-cocos-creator-1-6/50074/48
我另外一个贴,报了N多宕机,我不知道去哪里加try catch,郁闷.我在所有网络收包处理逻辑时都在外层加了try catch的,只是那些错,我真的无从下手.
那些应该是引擎的 bug,等待引擎修复吧
我还是前面的观点,游戏有 bug,就应该玩不了,甚至 crash。逼着用户重新进入游戏,这样才能获得稳妥的游戏体验。