10

When throwing an Error object in my promise chain, i attach a "details" property to it so that the handler can know what to do with it in the eventual catch block.

If logging is enabled, what i do in part of the chain is log the error and then rethrow it like so :

.somePartOfThePromiseChain
.catch(err => {
            console.log("ERROR");
            console.log(err.details);
            debugger;
            throw err;
          });

This works fine however, if i wanted to print the entire Error i dont get an object as expected but something that looks different like so :

Error: My error description here
    at API.js:105
    at <anonymous>

while i was expecting a collapsable object format as per usual in Chrome dev tools.

Im not sure why this happens as i essentially just want to print the Error object and view its members when debugging. This has nothing to do with me rethrowing the error as you can imagine.

Thanks a bunch.

1
  • In the above you're logging err.details, not err, but your description makes it sound like you're talking about logging err. Commented Feb 1, 2018 at 13:26

2 Answers 2

9

console.dir (MDN, Chrome devtools docs) does that on most consoles:

try {
  const e = new Error();
  e.details = "details go here";
  throw e;
} catch (ex) {
  console.dir(ex);
}
(Look in the real console.)

Sign up to request clarification or add additional context in comments.

1 Comment

I thought log wasnt a string representation, turns out it varies depending on the object. Thanks a bunch
6

Try wrapping it in another object.

Something like:

console.log( {error} );

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.