title: Why it's impossible to throw exception from __toString()?
body: <p>Why it's impossible to throw exception from __toString()?</p>
  
  <pre><code>class a
  {
      public function __toString()
      {
          throw new Exception();
      }
  }
  
  $a = new a();
  echo $a;
  </code></pre>
  
  <p>the code above produces this:</p>
  
  <pre><code>Fatal error: Method a::__toString() must not throw an exception in /var/www/localhost/htdocs/index.php on line 12
  </code></pre>
  
  <p>I was pointed to <a href="http://php.net/manual/en/migration52.incompatible.php" rel="noreferrer">http://php.net/manual/en/migration52.incompatible.php</a> where this behavior is described, but why? Any reasons to do that?</p>
  
  <p>May be anyone here knows this?</p>
  
  <p>At bug tracker php-dev-team as usual says nothing but see manual: <a href="http://bugs.php.net/50699" rel="noreferrer">http://bugs.php.net/50699</a></p>