例外クラスとビューを作成
例外クラスを次のコマンドで作成。
# php artisan make:exception 例外クラス名
例外時に表示するビューを作成。
# php artisan make:view exceptions/exception
resources/views/exceptions/exception.blade.php ファイルが作成される。
例外クラスについて
例外クラスのreportメソッドとrenderメソッド
- reportメソッド
例外をログに記録する。 - renderメソッド
レスポンスを生成する。
作成した例外クラス
作成した例外クラス(Exceptionクラス)を編集。
<?php
namespace App\Exceptions;
use Exception as BaseException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Illuminate\View\View;
use Throwable;
class Exception extends BaseException
{
public function __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
{
parent::__construct($message, $code, $previous);
}
public function report(): void
{
// 指定した内容とレベルでログ出力
Log::error($this->getMessage());
}
public function render(Request $request): View
{
// 指定したビューを表示。
return view('exceptions.exception');
}
}
動作確認
コントローラ等で次のコードを実行させることで確認できる。
throw new Exception('test');
これで例外クラスのreportメソッドにてログが出力され、
例外クラスのrenderメソッドにて指定したビューを表示できる。