PHPで安全に例外を投げる方法
ただの例外じゃユーザが補足できないし、かといって、あらゆる例外シチュエーションを自分で定義するのも、それはそれでユーザのAPI学習負担を高めてしまう。なので、標準の例外、たとえばRuntimeExceptionを投げたい。でも、PHP5.2(だったと思う)までは、SPLを外してPHPをインストールすることが可能らしいので、場合によってはRuntimeExceptionはないかもしれない。
いまのところ(4は滅んだけど普通5.3以上にはなっていない)、どこでも動くライブラリを書くなら、適切な方法はこんな感じ。
<?php $exclass = class_exists('RuntimeException') ? 'RuntimeException' : 'Exception'; throw new $exclass("実行環境おかしいんじゃね?"); ?>
これ、関数にすることはできない。例外がnewされたコード行が例外の発生源になって、トレースしたときみんなその関数から発生することになるから。
$arguments->caller いや、ないない。