我熟悉这样在JavaScript中创建自定义Error对象的过程。
class CustomError extends Error {
constructor(args) {
super(...args);
Error.captureStackTrace(this, CustomError);
}
}
但是,鉴于已经在其他地方抛出的异常/错误,我想创建一个新的错误对象,该对象是包括堆栈在内的原始对象的克隆/副本。
我的情况是我正在使用日志报告程序(例如Winston)捕获事件,并且我想将错误消息发布到Sentry。Sentry提供了一种捕获此类异常的方法-
try {
aFunctionThatMightFail();
} catch (err) {
Sentry.captureException(err);
}
但问题在于,Sentry假定捕获错误的位置就是引发错误的位置。
Sentry的好处之一是它可以报告应用程序中发生错误的位置的行号,但是由于我正在汇总日志,因此原始错误的堆栈帧已丢失。我可以保存其他可以发送给Sentry的元数据,但仍会突出显示该行,Sentry.captureException
并将其作为错误的起因以及调用Winston的堆栈帧。
Sentry SDK从Error
传递给的对象中组装JSON有效负载captureException
。我认为您只想直接组装该有效负载并使用发送即可captureEvent
。有关更多信息,请参见https://docs.sentry.io/development/sdk-dev/attributes/。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句