请教一下,Promise里面有写reject,调用的时候不写catch的话怎么能不抛出异常

  • Creator 版本: 3.6.1

  • 目标平台:

  • 重现方式:

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率:

请教一下,在Promise里面有写reject,但是用到的时候有的地方不想写catch,如果触发reject就会抛出unhandledrejection异常,只能每个调用的地方都写catch吗,有什么办法可以不写catch的时候不抛出异常呢,浏览器调试会直接弹出一个错误框,影响调试流程。

尝试监听window.onerror事件,拦截全局异常,这应该也是cocos拦截全局错误并弹窗的方式。网上教程比较多,直接百度搜索 window.onerror看看用法应该就会了。

window.onerror监听不到,查了下要用window.addEventListener(“unhandledrejection”)监听,加了这个监听之后Uncaught (in promise)这个报错不会在控制台显示了,但是还会有报错弹窗和控制台有PromiseRejectionEvent的报错。

沉了吗 :joy:,想问下一般遇到这种情况的时候怎么处理比较好呢,有的地方需要处理catch,有的地方不需要处理,要每个地方都写个catch吗,这样会写很多无用代码,目前想到的方法是传个参数是否需要reject

可以考虑不要reject :sweat_smile:

finally

但是有的地方需要处理reject,所以目前想到的方法是传个参数判断要不要reject :joy:,但是感觉这么写不太好,我记得调用小游戏平台的接口的时候有的不写catch出错的时候好像没有抛出来,不知道怎么处理的

finally的话不知道状态

image

之前没注意还有这个设置 :joy:,感谢,但是这个只是没有错误弹窗了,控制台还是会报错