🔥

CodeIgniter4 独自の例外を定義

2024/05/23に公開

実行環境

  • PHP 8.2.12
  • CodeIgniter 4.5.1

独自例外

app/Exceptions/CustomException.php
<?php

namespace App\Exceptions;

use RuntimeException;
use Throwable;

class CustomException extends RuntimeException
{
    /**
     * @param string $message
     * @param int $code
     * @param Throwable|null $previous
     */
    public function __construct(string $message, int $code = 0, Throwable $previous = null)
    {
        parent::__construct($message, $code, $previous);
    }
}

公式ドキュメントで特に定められていなかったので app/Exceptions を作成し配置した。

動作確認

app/Controllers/Home.php
<?php

namespace App\Controllers;

use App\Exceptions\CustomException;

class Home extends BaseController
{
    /**
     * @return string
     * @throws CustomException
     */
    public function index(): string
    {
        if (rand(0, 1) === 1) {
            throw new CustomException('Custom Exception Message');
        }
        return view('welcome_message');
    }
}

参考

Discussion