Ответ 1
Те члены [Getter/Setter]
указывают дополнительную информацию об объекте ошибки. Вы можете легко сбрасывать содержимое этих геттеров/сеттеров с помощью небольшой вспомогательной функции (очень тривиальная реализация, дополнительная доработка зависит от вас).
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);
}
Вы также можете расширить Object.prototype
для улучшения доступности (так что вы можете использовать err.dumpError()), хотя расширение Object.prototype
несет риск перезаписи существующих функций.