3.6 JS监听报错有问题?文档貌似还是1.7的文档。。。


感觉是重构后变成在这个地方了 官方文档写的还是旧的CPP 压根找不到 但是写这又触发不了log 头很大


官方到3.6的文档还是这块 但是这个文件貌似在引擎内没有看到

1赞

顶顶!!顶顶!!

3.6.0 跟 3.6.3都没用。。

新版本可以这里添加

1赞

我在\native\engine\common\Classes 下的CPP加了 没有用用处的样子。。。



log一下 是有进入设置的 但是 js报错的时候 无法打印bbbbbbbb

JS 报错用这个监听这个函数

  se::ScriptEngine::getInstance()->setJSExceptionCallback([](const char*, const char*, const char*) {
  });

试过了。。是一样的呀

其实代码上,不管设置哪个函数,其实都是一样的。他现在的问题应该是有报错的时候,压根不会走进callExceptionCallback这个函数里

这个函数不会捕获 console.error 这类输出,或者是被 try-catch 捕获的错误,比如你在 main.js 的空白处写个 xx.xxx = 0,这样的代码就会被捕获。

我猜是因为debug包,所以不会被捕获,release包应该就行

引擎内部对一些错误是有做捕获处理,跟 release 没有关系的

试了一下 按你的方式 把监听放在baseGame::init 下面 并且打release 就能用了 【之前失败是在as上面调试 他就不发送 直接打release 用adblog 是有用的】。。还有我感觉文档要更新了。。。

v3.5 已构建工程升级指南 · Cocos Creator 直接重写 Game.cpphandleException 接口就行了 但是要打release包才有效这个真是坑死我了 我试了一天

我也是一直在as里调试不出,而且据说分好多情况,就像上面的回复,引擎内部捕捉的错误这里抓不到,您最后成功了吗,可以写个帖子或者简单指导下吗

啊 就是在game.cpp内监听 然后 记得放在init下面 然后打 release版本就行了

release版本就是关闭调试模式就行吗?这边也是有错误输出但捕捉不到错误

不仅仅是这个啊 你as还要再打release包啊 难道你一直都是在as里面直接运行的


打release包 直接as运行的肯定是debug包