広告スペース(バナー)
🐘PHP レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 50 / 68
try/catch/finallyで後片付け処理をしよう
このレッスンでは、try/catch/finallyを使った後片付け処理の書き方を学び、エラーの有無にかかわらず確実に実行したい処理を書けるようになることを目標にします。「PHP finally 使い方」で調べている方向けです。
finallyブロックは、例外が発生してもしなくても必ず実行される後片付け用のブロックです。ファイルを閉じたり、処理の終了を知らせたりするのに使います。ファイルを閉じる、通信を終了するといった後片付け処理は、エラーの有無にかかわらず確実に実行される必要があります。
サンプルコードでは、divide関数の中でtryによる計算・catchによるエラー処理に加えて、finallyで「計算処理を終了します」というメッセージを必ず表示しています。正常な場合とエラーの場合の両方でこのメッセージが表示される点を確認してみましょう。
初心者がよくつまずくのが、finallyの中でreturnを書いてしまうケースです。finallyの中でreturnを書くと、try側の戻り値が上書きされてしまう点には注意が必要で、意図しない挙動を招くことがあります。
データベース接続やファイル操作など、リソースを確実に解放したい処理でfinallyはよく使われます。実務では、通信の後始末やログの記録など、成功・失敗にかかわらず必要な処理をfinallyにまとめておくことでコードの重複を防げます。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではPHPを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
エラーが起きても必ず後片付けが行われる、安全な処理が書けるようになります。
エラーが起きても必ず後片付けが行われる、安全な処理が書けるようになります。
広告スペース(バナー)
広告スペース(記事内)