javascript finallyでのreturnは最優先されるので使わない方がいい
- 2021.02.20
- javascript
- javascript

javascriptで、try-catch-finall構文で必ず実行されるfinallyでのreturnは最優先されることを確認するサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 84.0.4147.105
finallyでreturn実行
finallyでreturnを実行すると、try内やcatch内で記述しているreturnは実行されません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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内でも同様です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
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
コメントを書く