mitsuのぶろぐ

基本的にはプログラミングの話のつもり。

tryとfinallyどちらでもreturnした場合どうなるのか

なんだか昔にも似たような内容を調査した気がしますが、忘れてしまったので備忘録的に記載します。

JSのtry-catch-finallyにおいて、内部でreturnを書いた場合にどうなるかを確認しました。

function hoge() {
  try {
    return "try"
    throw new Error("error!!!!")
  } catch {
    return "error"
  } finally {
    return "finally"
  }
}

console.log(hoge())

さて、こんなコードを書いてみたらどうなるかを確認してみたいと思います。

結果的にログとして出てくるのはfinally内から返ってくる finally という文字になります。

JSの内部処理の詳細に関しては以下の記事にお譲りしたいと思います。

zenn.dev

ぱっと見た感じreturnしようがしまいが、基本的にtry -> catch -> finallyと流れていくようですね👀

その中で特定の状態であった(ex: errorがある、returnがある)場合などに処理の流れや渡される値の形などが変わっていそうです。

tryの中でのreturnの使い方は気をつけたいですね…