基本文法の基礎8▾
データ構造とオブジェクト指向8▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
try/catch/finallyで後片付け処理をしよう
このレッスンでは、try/catch/finallyを使った後片付け処理の書き方を学び、エラーの有無にかかわらず確実に実行したい処理を書けるようになることを目標にします。「JavaScript finally 使い方」で調べている方向けの内容です。
finallyブロックは、例外が発生してもしなくても必ず実行される後片付け用のブロックです。「エラーが起きても起きなくても、最後にこの処理だけは必ず行いたい」というときに使います。ファイルを閉じる、通信を終了する、ローディング表示を消す、といった処理は、エラーの有無にかかわらず確実に実行される必要があるため、finallyが重宝されます。
サンプルコードでは、divide関数の中でtryによる計算・catchによるエラー処理に加えて、finallyで「計算処理を終了します」というメッセージを必ず表示しています。正常に割り算できた場合とエラーになった場合の両方で、このfinallyのメッセージが表示されることを確認してみましょう。
初心者がよくつまずくのが、finallyブロックの実行タイミングです。tryやcatchの中にreturnがあっても、その値が返される前にfinallyが実行されるという少し特殊な順序になっています。エラー処理を書くときは、catchだけでなくfinallyの存在も忘れないようにしましょう。
データベース接続やネットワーク通信など、リソースを確実に解放したい処理でfinallyはよく使われます。実際の開発現場では、通信の後始末やローディング表示のオン・オフなど、成功・失敗にかかわらず必要な処理をfinallyにまとめておくことで、コードの重複を防げます。
💡 console.log() の内容が実行結果に表示されます。
エラーが起きても必ず後片付けが行われる、安全な処理が書けるようになります。