Node.jsスクリプトでtry catchを使用しています:
try {} catch (err) {console.log(err)}
次のような出力が得られます。
{ stack: [Getter/Setter],
arguments: [ 'undefined' ],
type: 'called_non_callable',
message: [Getter/Setter] }
これをより有益なものにする簡単な方法はありますか?行番号や関数名などを含めますか?
これらの[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
を拡張して既存の機能を上書きするリスクはありますが、Object.prototype
を拡張してアクセシビリティを向上させることもできます(err.dumpError()を使用できます)。