node/test/message/util-inspect-error-cause.js
Ruben Bridgewater 0a9cb170fe
util: always visualize cause property in errors during inspection
While inspecting errors, always visualize the cause. That property
is non-enumerable by default while being useful in general for
debugging.

Duplicated stack frames are hidden.

Signed-off-by: Ruben Bridgewater <ruben@bridgewater.de>

PR-URL: https://github.com/nodejs/node/pull/41002
Fixes: https://github.com/nodejs/node/issues/40859
Fixes: https://github.com/nodejs/node/issues/38725
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2021-12-02 06:01:50 +00:00

32 lines
800 B
JavaScript

'use strict';
require('../common');
const { inspect } = require('util');
class FoobarError extends Error {
status = 'Feeling good';
}
const cause1 = new TypeError('Inner error');
const cause2 = new FoobarError('Individual message', { cause: cause1 });
cause2.extraProperties = 'Yes!';
const cause3 = new Error('Stack causes', { cause: cause2 });
process.nextTick(() => {
const error = new RangeError('New Stack Frames', { cause: cause2 });
const error2 = new RangeError('New Stack Frames', { cause: cause3 });
inspect.defaultOptions.colors = true;
console.log(inspect(error));
console.log(inspect(cause3));
console.log(inspect(error2));
inspect.defaultOptions.colors = false;
console.log(inspect(error));
console.log(inspect(cause3));
console.log(inspect(error2));
});