I'm using try catch on a node.js script:
try {} catch (err) {console.log(err)}
I get an output like this:
{
stack: [Getter/Setter],
arguments: [ 'undefined' ],
type: 'called_non_callable',
message: [Getter/Setter]
}
Is there an easy way to make this more informative? Include line numbers and function names and such?
Those [Getter/Setter]
members indicate further information available on the error object. You can easily dump the contents of those getters/setters using a small helper function (very trivial implementation, further refinement is up to you)
function dumpError(err) {
if (typeof err === 'object') {
if (err.message) {
console.log('\nMessage: ' + err.message)
}
if (err.stack) {
console.log('\nStacktrace:')
console.log('====================')
console.log(err.stack);
}
} else {
console.log('dumpError :: argument is not an object');
}
}
try {
not_defined.function_call();
} catch(err) {
dumpError(err);
}
You could also extend the Object.prototype
for improved accessability (so you could use err.dumpError()), although extending Object.prototype
bears the risk of overwriting existing functionality.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With