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()メソッド内では例外を出すことができないのです。 他のあらゆ
![【PHP7.4】__toString()が例外を吐けるようになる - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/11dd45c20816511c6af27f3c19eb0885311ac256/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgwJTkwUEhQNy40JUUzJTgwJTkxX190b1N0cmluZyUyOCUyOSVFMyU4MSU4QyVFNCVCRSU4QiVFNSVBNCU5NiVFMyU4MiU5MiVFNSU5MCU5MCVFMyU4MSU5MSVFMyU4MiU4QiVFMyU4MiU4OCVFMyU4MSU4NiVFMyU4MSVBQiVFMyU4MSVBQSVFMyU4MiU4QiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9ZTA3ZjAyOGE3Y2VlZTc4MDNlZmJhZGMzMzBiMGZiMzI%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDByYW5hX2t1YWx1JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz03N2I2ZjE5MzhkZTc1YjA5MWI1MWQ2MDI4MjBkM2JhYw%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D3a91829f257aa823c90045dd2db388c4)