肖亮亮 比如鼠标事件触发回调函数中有报错,Script脚本类onStart函数有报错等...在这些函数执行中如果触发错误都只会在控制台打印错误,而不会弹出提示,因为底层代码中这些逻辑被try了catch中只打印了打印错误日志,这样会造成项目上线后用户如果触发相关的错误,研发没有办法及时搜集到错误信息。
小孟 您好,弹窗显示全局错误可以自定义处理,例如自定义一个全局错误。(参考:https://layaair.com/3.2/doc/basics/IDE/projectSettings/readme.html?h=%E9%94%99%E8%AF%AF#143-%E5%BC%B9%E7%AA%97%E6%98%BE%E7%A4%BA%E5%85%A8%E5%B1%80%E9%94%99%E8%AF%AF ) 或者,在LayaAir的引擎源码中,ComponentDriver.ts中有onError方法,可以修改此方法,然后编译引擎,并在LayaAir-IDE中使用编译后的引擎。
肖亮亮 小孟 不好意思哈!你可能没有理解我的意思,我的意思是我截图那段代码是laya.core.js底层的代码,你们在方法里头使用了trycatch然后在catch只打印了错误日志,我在代码层面重写onError也好都捕获不到,比如鼠标事件触发回调函数中有报错,Script脚本类onStart函数有报错等
小孟 您的需求是报错的时候,希望能够弹窗显示错误,而不仅仅是控制台打印吗 我按具体例子解释一下(如果不是这样理解,我再去问问同事),勾选IDE“项目设置”中的“弹窗显示全局错误”以后,方法一:自定义一个全局错误。可以在需要用到弹窗显示报错的时候,调用这个自定义的全局错误,就可以弹窗显示了: 方法二:更改引擎源码,然后重新编译。在IDE使用编译后的引擎,此时测试,在onstart中抛出一个错误,或者鼠标点击时抛出错误。得到的效果都有弹窗:
肖亮亮 小孟 目前来说就只有改改源码嘛 引擎未来有规划这块 你们自己trycath的错误 能让用户通过winodw.onerror捕获到吗 毕竟有些BUG不是在开发阶段就能改完的 有些BUG可能不要用户操作后出现 但是用户不可能给你看报错日志 对吧