DEV Community

Discussion on: Hoist Your Vars! (Variable Hoisting in JavaScript)

Collapse
 
moyarich profile image
Moya Richards

I am curious, why is your variable being mutated in the catch block? that block is for errors

Collapse
 
tunaxor profile image
Angel Daniel Munoz Gonzalez

the times I need to do this is to show a default for something
or just ensure there is a valid value returned from the function, most of the time this is used on places where failure is not critical or it's a "top level" UI element function call

I'd say it's kind of fail behind scenes keep the good face up

Collapse
 
beardedhen profile image
Ryan Schumacher

A good example of when you might want to do this is if it’s a known exception and you are going to hand wave it away.

(async () => {
let result
try {
  // catch network issues
  const response = await fetch('https://example.com')
  // catch non-json data
  const data = await response.json()
  // catch inaccessible object
  result = data.messages
} catch(e) {
  result = { messages: [] }
}
})().then().catch()