例外処理
例外処理
<?php try { // 例外が発生する可能性がある処理 } catch (例外の種類 $例外を受け取る変数名) { // 例外発生時の処理 } finally { // 例外の有無に関わらず実行される処理 }?>
マルチキャッチ
<?php try { ... } catch (下位の例外クラス $xxx) { ... } catch (上位の例外クラス $xxx) { // catchブロックの記述順に注意。下位の例外クラスは先に、上位の例外クラスは後に記述 }?>
throw命令
自分で任意の例外を発生させることができる。
<?php if (...) { throw new RuntimeException('エラーメッセージ'); } ?>
文だけではなく式としてthrowを利用できる。
<?php // 条件演算子 $i > 0 ? $i : throw new Exception('...'); // null合体演算子 nullなら例外をスロー $str ?? throw new Exception('...'); // アロー関数 例外をスローするだけの関数 $hoge = fn() => throw new Exception('...'); // ショートカット演算 左式がfalseの場合 $x > 0 || throw new Exception('...'); ?>