javascript finallyでのreturnは最優先されるので使わない方がいい
- 作成日 2021.02.20
- 更新日 2022.08.05
- javascript
- javascript
javascriptで、try-catch-finall構文で必ず実行されるfinallyでのreturnは最優先されることを確認するサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 103.0.5060.134
finallyでreturn実行
finallyでreturnを実行すると、try内やcatch内で記述しているreturnは実行されません。
const hoge = () => {
try {
console.log(foo); // 定義してない変数なためエラー
} catch (e) {
console.log(e.message)
return "catchからreturn";
} finally {
console.log("finallyが実行されました。");
return "finallyからreturn";
}
}
console.log(
hoge() //
);
実行結果から確認できるように、catch内で記述したreturnは実行されません。
try内でも同様です。
const hoge = () => {
try {
let foo = "mebee";
console.log(foo); // 定義してない変数なためエラー
return "tryからreturn";
} catch (e) {
console.log(e.message)
return "catchからreturn";
} finally {
console.log("finallyが実行されました。");
return "finallyからreturn";
}
}
console.log(
hoge()
);
実行結果
-
前の記事
C# ファイルの存在チェックを実行する 2021.02.19
-
次の記事
Ruby カタカナをローマ字に変換する 2021.02.20
コメントを書く