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.