class HOGE{ public $var; public function __toString(){ if(!$this->var){ throw new \Exception('$var must set.'); } return sprintf('$var is %1$s', $this->var); } } try{ echo new HOGE(); }catch(\Exception $e){ var_dump($e); } 何の変哲も無いように見えるコードですが、これ動きません。 Fatal error: Method HOGE::__toString() must not throw an exception, caught ExceptionというFatalエラーを吐いて死にます。 実は__toString()メソッド内では例外を出すことができないのです。 他のあらゆ