Laravel 8 例外で「$e->getCode()」が「0」になる

例外処理でPHPエラーをキャッチしてもらったときのコードが「0」になる…

作成日:2023-01-13, 更新日:2023-01-13

調査中

Laravelじゃなければ「$e->getCode()」で「0」じゃない数値が出力されるんだけどLaravelだと「0」になる
どっかに設定があるのかは不明…

▼原因不明...

try {
    echo $a;
}
catch (Exception $e) {
    echo $e->getCode(); // 0
    echo $e->getMessage(); // Undefined variable $a
}

原因?

laravelが「0」を返す設定をしているっぽい

▼「Illuminate/Foundation/Bootstrap/HandleExceptions」の「handleError()」の中

throw new ErrorException($message, 0, $level, $file, $line);

→「0」を「$level」に変更すれば解決しそうな気がする…

「0」を「$level」に変更すれば「2」を返してくれるようにはなる…「2」だから「E_WARNING」なんだけど「E_NOTICE」を出すことができないので確認ができない。「E_PARSE」とかは例外にはいってくれずにブラウザ側にエラーが出力

ひとまず…挫折