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