第12章
第12章 · 初心者向け

ログ・エラー処理

ユーザーには短く、自分たちには詳しく。失敗に備える章です。

1. ログとは

アプリの出来事をファイルなどに残した記録

2. なぜログを残すのか

本番では詳細エラーを画面に出せません。後から原因を追うために必要です。

3. CakePHPでログ出力

use Cake\Log\Log;

Log::write('info', '一覧を表示しました');
Log::error('保存失敗: ' . $e->getMessage());

4. info / warning / error

  • info … 普通の記録
  • warning … 変だけど動いている
  • error … 失敗

5. Exception

「ここで止めたい異常」を表すもの。throw すると処理が中断される

6. try / catch

たとえ

try=挑戦。catch=失敗したときの受け網。

try {
    $this->Todos->saveOrFail($todo);
} catch (\Throwable $e) {
    Log::error($e->getMessage());
    $this->Flash->error('保存に失敗しました');
}

7. エラー時の処理

基本パターン
  1. ユーザーには短い Flash
  2. ログには詳細
  3. 必要ならROLLBACK
  4. 安全な画面へ戻す

第12章 やってみよう

EXERCISE
  1. 失敗時に Log::error する catch を書く
  2. ユーザー向け文面は1行にする