Chapter 6. Error Handling
Errors and error handling in PHP has remained pretty much unchanged since PHP 4, except for the additions of E_STRICT in PHP 5.0, E_RECOVERABLE_ERROR in PHP 5.2, and E_DEPRECATED in PHP 5.3.
Despite adding exceptions to PHP 5 and seeing limited application within PHP (e.g., ext/pdo and ext/spl), numerous attempts to replace traditional errors with them have failed. In PHP 7.0, this has finally changed, with the “Exceptions in the engine (for PHP7)” RFC.
Exceptions on Constructor Failure
Prior to PHP 7.0, if an internal class failed to instantiate properly, either a null or an unusable object was returned.
With PHP 7.0, all internal classes will throw an exception on __construct() failure. The type of exception will differ on the object being instantiated and the reason for failure—as shown in Example 6-1. If you pass in an argument of the incorrect type, a \TypeError is thrown (see “\TypeError”).
Engine Exceptions
With PHP 7.0, almost all fatal errors and catchable fatal errors are now engine exceptions. This is possible because an uncaught exception still ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access