0% complete

Advanced PHP · Lesson 3 of 10

Exceptions

Throw exceptions for failures and catch them at a meaningful boundary.

Lesson

Exceptions carry failure information up the call stack until a matching catch handles them. Catch only exceptions you can meaningfully recover from or translate; swallowing every Throwable hides defects. Use finally for cleanup that must happen whether an operation succeeds or fails. A custom exception can communicate a domain-specific failure to its caller. Further guidance Make failure behavior explicit at system boundaries: validate decoded data, handle expected exceptions, and log diagnostics without exposing them to visitors. Keep dependencies locked and current, use a consistent namespace/autoloading scheme, and test error paths as well as successful responses. Practice task: Create a fresh example for Exceptions. Predict the result before running it, then change one input and explain why the result changes. Test a normal case and one boundary or invalid case where it applies. Compare your output with the example and note one rule you would use in a real project.

Code examples

Exceptions
PHP
try {
    throw new DomainException('Order is already closed');
} catch (DomainException $exception) {
    echo 'Cannot update this order.';
}
Expected output
Cannot update this order.

Key points

  • Throw exceptions for failures and catch them at a meaningful boundary.
  • Handle expected errors explicitly without exposing diagnostics.
  • Keep dependency and runtime configuration reproducible.

Your learning progress

Finish this lesson

Optional practice

PHP playground

This site does not execute learner-provided PHP code. Connect a secured PHP sandbox service before enabling code execution.

Execution is disabled. No code is sent to a server.