@Rubix
Учусь на React-разработчика.

Не пойму, зачем finally?

Всем привет! Учу js, сейчас прошел урок про исключения. И так вот, зачем после try/catch использовать finally, если он будет выполняться в любом случае? Например, зачем писать
try {} catch {} finally {
 alert('В любом случае')
}

..., если можно сделать
try {} catch {}
alert('После try/catch, но тоже в любом случае')

Неужели, это просто синтаксический прием, чтобы облегчить читаемость, или правда есть какие-то отличия? Ну, кроме области видимости (можно создать анонимный блок и без условия, просто литералом). Не пойму, объясните)
  • Вопрос задан
  • 444 просмотра
Решения вопроса 1
Bavashi
@Bavashi
В try catch может быть выход из этой конструкции и тогда во втором случае (без finally) мы не сможем выполнить блок, который нам обязательно надо выполнить.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@i1yas
Разница есть в таком случае:
const func = () => {
  try {
    return "try value"
  } catch(e) {}
  return "after try"
}

console.log(func()) // try value


const func = () => {
  try {
    return "try value"
  } catch(e) {}
  finally {
    return "finally value"
  }
  return "after try"
}

console.log(func()) // finally value


finally выполняется первым, и в функции это может быть критичным
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы