PHP Exceptions

Learn how to handle errors and exceptional conditions in PHP using exceptions.

Introduction to Exceptions

In PHP, exceptions are a way to handle errors or unexpected situations in a controlled manner. When an exception is thrown, the normal flow of the program is interrupted, and control is transferred to a special block of code designed to handle the exception.

Basic Exception Handling

You can throw an exception using the throw keyword and handle it using a try and catch block.

<?php
try {
    throw new Exception("An error occurred!"); // Throwing an exception
} catch (Exception $e) {
    echo "Caught exception: " . $e->getMessage(); // Handling the exception
}
?>

Creating Custom Exceptions

You can create your own exception classes by extending the built-in Exception class. This allows you to define specific exception types for your application.

<?php
class MyCustomException extends Exception {}

try {
    throw new MyCustomException("This is a custom exception!"); // Throwing a custom exception
} catch (MyCustomException $e) {
    echo "Caught custom exception: " . $e->getMessage();
}
?>

Finally Block

You can use a finally block to execute code regardless of whether an exception was thrown or not. This is useful for cleanup operations.

<?php
try {
    // Some code that may throw an exception
    throw new Exception("An error occurred!");
} catch (Exception $e) {
    echo "Caught exception: " . $e->getMessage();
} finally {
    echo "This will always execute."; // Always executed
}
?>

Multiple Catch Blocks

You can catch multiple exception types using separate catch blocks:

<?php
try {
    // Some code that may throw different exceptions
    throw new InvalidArgumentException("Invalid argument provided!");
} catch (InvalidArgumentException $e) {
    echo "Caught invalid argument exception: " . $e->getMessage();
} catch (Exception $e) {
    echo "Caught general exception: " . $e->getMessage();
}
?>

Re-throwing Exceptions

You can re-throw an exception after catching it, allowing you to handle it at a higher level:

<?php
try {
    throw new Exception("Initial exception");
} catch (Exception $e) {
    echo "Caught exception: " . $e->getMessage();
    throw $e; // Re-throwing the exception
}
?>

Conclusion

Exceptions in PHP provide a powerful way to handle errors and unexpected situations. By using try, catch, and finally blocks, you can create robust applications that gracefully handle errors without crashing. Understanding exceptions is crucial for building reliable and maintainable PHP applications.