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 ...
Get Upgrading to PHP 7 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.