DEV Community


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

moyarich profile image

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

tunaxor profile image
Angel D. Munoz

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

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('')
  // catch non-json data
  const data = await response.json()
  // catch inaccessible object
  result = data.messages
} catch(e) {
  result = { messages: [] }