Exception handling is used to change the normal flow of the code execution if a specified error (exceptional) condition occurs. This condition is called an exception.
Exceptions or errors (more on that see below) end code execution, unless they are handled with try-catch.
try { // code that throws an Exception } catch (Exception $ex) { // Exception is handled, code continues }
Several catch statements may be used to differentiate between several kinds of exceptions and errors.
try { // code that throws an Exception } catch (CustomExceptionClass $ex) { // custom Exception is handled } catch (Exception $ex) { // Exception is handled } catch (Error $err) { // Error is handled }
Several errors may be handled with the same code.
try { // code that throws an Exception } catch (Exception | CustomException $ex) { // custom Exception and Exception }
Optional finally block contains code that runs after the trycatch block, no matter whether an error was caught or not
This is what normally happens when an exception is triggered:
- The current code state is saved
- The code execution will switch to a predefined (custom) exception handler function
- Depending on the situation, the handler may then resume the execution from the saved code state, terminate the script execution or continue the script from a different location in the code