He creado un programa simple que arroja un error.
índice.js:
const tester = require('./Tester.js'); tester("throw");probador.js
const error = require('./GetError.js'); module.exports = (text) => { if (text === "throw") { throw new Error("Word throw is forbidden!") } }GetError.js
module.exports = (n) => { if (n===1) { return } }Si compruebo el seguimiento del error, tengo esto:
hiddenPath\Tester.js:5 throw error(1); ^ Error: Word throw is forbidden! at module.exports (hiddenPath\GetError.js:3:23) at module.exports (hiddenPath\Tester.js:5:11) at Object.<anonymous> (hiddenPath\index.js:3:1) at Module._compile (internal/modules/cjs/loader.js:1085:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) at Module.load (internal/modules/cjs/loader.js:950:32) at Function.Module._load (internal/modules/cjs/loader.js:790:12) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12) at internal/main/run_main_module.js:17:47Lo que quiero es decirle al usuario de dónde vino el error, y en este caso fue cuando proporcionamos la cadena "lanzar", por lo que el resultado que quiero debería ser así:
hiddenPath\index.js:3 tester("throw") ^ Error: Word throw is forbidden! at ...Debo especificar claramente que el primer argumento que causó el error fue arrojado.
Un ejemplo es con jest que da errores como este: (Te dice claramente cuál es la causa del problema)
86 | val = getVal(x); 87 | > 88 | expect(val).toEqual("test"); | ^ 89 | }); 90 | 91 | });¿Cómo puedo conseguir esto?