Um novo recurso do PHP7 será a inclusão de exception no núcleo do PHP7 e permitir a substituição de alguns erros fatais por exception.
Este recurso será muito útil em diversas situação. Abaixo ilustramos o comportamento deste novo recurso:
function call_method($obj) { $obj->method(); } call_method(null); // Fatal error: Call to a member function method() on a non-object in /path/file.php on line 4
Este era o comportamento e o erro visto até a versão PHP7.
O novo comportamento será substituir o fatal error com EngineException, que poderá ser tratado / capturado por um try/catch, como na seguinte situação:
try { call_method(null); // Exception: Call to a member function method() on a non-object } catch (EngineException $e) { echo "Exception: {$e->getMessage()}\n"; }
Caso a Exception não seja tratada, o PHP irá apresentar a mensagem de fatal erro que já é a padrão atualmente.