我有一个Node.js云函数,正在尝试提醒未处理的拒绝。如果我抛出一个未经处理的拒绝,并导致我的index.js入口点崩溃,错误就会出现在错误报告中(尽管我由于某种原因没有收到通知)。这也显示为日志级别“严重”:

如果我在同一云函数(由index.js导入)中的不同.js文件中抛出相同的未处理拒绝,它不会显示为日志级“严重”,错误报告中也不会报告错误:

确保捕获整个Cloud Function中所有未处理的拒绝(并确保收到警报)的正确方法是什么?这就是我在index.js入口点中初始化错误报告的方法:
const {ErrorReporting} = require('@google-cloud/error-reporting');
const errors = new ErrorReporting({
reportUnhandledRejections: true
});发布于 2021-05-12 22:40:50
对于这个github问题,我得到了错误报告团队的澄清:https://github.com/googleapis/nodejs-error-reporting/issues/548。
最后,这很可能是因为我只是在我的主index.js中初始化了错误报告对象,而不是在我的其他.js文件(发生实际的未处理拒绝的地方)中将其传递或再次这样做。一种解决方法是将我的整个index.js代码包装在一个try / catch(e)中,并放在errors.report(e)中的catch(e)块中。然后,即使在执行过程中在另一个文件中发生未处理的拒绝,我也会在错误报告中得到通知。
https://stackoverflow.com/questions/66863947
复制相似问题