如何使用try,catch在error handling中打印消息
我有一个简单的例子:
var str = '{ "test" : 1, }' try { JSON.parse(str); } catch (e) { console.log(e) }
结果:
[SyntaxError:意外的标记}]
如何打印所有的错误信息?
预期结果:
undefined:1 { "test" : 1, } ^ SyntaxError: Unexpected token }
这将有助于:
var x = { asd: "asd", }; try { JSON.parse(x); } catch (e) { console.log("Error", e.stack); console.log("Error", e.name); console.log("Error", e.message); }
error.stack
不完全是你想要的,但它会帮助你。
这将向您显示您可以获取信息的各种方式:
var str = '{"test": 1, }'; try { JSON.parse(str); } catch(e) { console.log("error object:"); console.log(e); console.log(); console.log("error object toString():"); console.log("\t" + e.toString()); console.log(); console.log("error object attributes: "); console.log('\tname: ' + e.name + ' message: ' + e.message + ' at: ' + e.at + ' text: ' + e.text); console.log(); console.log("error object stack: "); console.log(e.stack); }
输出是:
error object: [SyntaxError: Unexpected token }] error object toString(): SyntaxError: Unexpected token } error object attributes: name: SyntaxError message: Unexpected token } at: undefined text: undefined error object stack: SyntaxError: Unexpected token } at Object.parse (native) at Object.<anonymous> (/home/james/devel/tests/node/test.js:4:10) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:492:10) at process.startup.processNextTick.process._tickCallback (node.js:244:9)
你可以select:-)
干杯,
詹姆士。