catch
A catch
block defines how to respond to a thrown exception. A catch
block defines one or more types of exception or error it can handle, and
optionally a variable to which to assign the exception. (The variable was
required prior to PHP 8.0.0.) The first catch
block a thrown exception
or error encounters that matches the type of the thrown object will handle
the object.
Multiple catch
blocks can be used to catch different classes of
exceptions. Normal execution (when no exception is thrown within the try
block) will continue after that last catch
block defined in sequence.
Exceptions can be throw
n (or re-thrown) within a catch
block. If not,
execution will continue after the catch
block that was triggered.
When an exception is thrown, code following the statement will not be
executed, and PHP will attempt to find the first matching catch
block.
If an exception is not caught, a PHP Fatal Error will be issued with an
"Uncaught Exception ...
" message, unless a handler has
been defined with set_exception_handler.
As of PHP 7.1.0, a catch
block may specify multiple exceptions
using the pipe (|
) character. This is useful for when
different exceptions from different class hierarchies are handled the
same.
As of PHP 8.0.0, the variable name for a caught exception is optional.
If not specified, the catch
block will still execute but will not
have access to the thrown object.