Tengo un objeto de error de JavaScript que he capturado en el código. Tiene un nombre, mensaje, pila, etc. que quiero registrar en el backend. Estoy usando centinela para eso. Pero antes de iniciar sesión quiero cambiar el nombre o el mensaje del error.
¿Cuál será la mejor manera de hacerlo? Intenté crear un nuevo error y agregar el error original como cause , pero eso no funcionó con Sentry. Simplemente registra el error pasado como la causa del nuevo error.
new Error('Additional error message', { cause: originalError });Necesito que el resto de las propiedades del error sigan siendo las mismas, solo falta cambiar el nombre o el mensaje.
He cometido errores un poco legibles con esto:
cuando capture una excepción, agregue el nombre de transacción al scope .
también puede mejorar el evento en el método beforeSend
Sentry.captureException(error, (scope) => { ... scope.setTransactionName(`my custom title for error`); return scope; }); 
Una cosa muy útil que puede hacer para lograr esto es crear sus propios tipos de error personalizados. Esto se puede hacer simplemente usando una clase que extienda el constructor Error, así:
class MyError extends Error { constructor(message) { super(); this.name = "MyError"; this.message = message; } } try { throw new MyError('this is my error') } catch (err) { console.log(err instanceof Error); console.log(err.message); console.log(err.name); console.log(err.stack); } class ExtendedError extends Error { constructor(message, { cause }) { super(); this.name = "ExtendedError"; this.message = message; // set the cause to maintain linkage to the original error this.cause = cause; } } try { throw new Error('Something bad happened!'); } catch (err) { let extendedError = new ExtendedError('Additional details', { cause: err }); console.log(extendedError instanceof Error); console.log(extendedError.message); console.log(extendedError.name); console.log(extendedError.cause.stack); console.log(extendedError.stack); }