How to print a message while handling errors with try, catch

I have a simple example:

var str = '{ "test" : 1, }' try { JSON.parse(str); } catch (e) { console.log(e) } 

result:

[SyntaxError: Unexpected token}]

How to print all error information?

Expected Result:

 undefined:1 { "test" : 1, } ^ SyntaxError: Unexpected token } 
+6
source share
2 answers

This will help:

 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 not exactly what you want, but it will help you.

+7
source

This will show you the various ways that you can get information:

 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); } 

Conclusion:

 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) 

You can choose: -)

Greetings

James.

+2
source

All Articles