Почему невозможно исключить исключение из __toString()?
class a
{
public function __toString()
{
throw new Exception();
}
}
$a = new a();
echo $a;
приведенный выше код создает следующее:
Fatal error: Method a::__toString() must not throw an exception in /var/www/localhost/htdocs/index.php on line 12
Я указал на http://php.net/manual/en/migration52.incompatible.php, где описано это поведение, но почему? Любые причины для этого?
Может кто-нибудь здесь это знает?
В отладчике ошибок php-dev-team, как обычно, ничего не говорит, кроме руководства: http://bugs.php.net/50699