PHP Try-Catch Blocks – Exception Handling Made Easy 🚀
Ever had a script crash and throw an ugly error message? 😱 Instead of letting errors ruin your day, use try-catch blocks to catch and handle them like a pro! 💪
PHP provides try and catch to deal with exceptions (unexpected errors) and prevent your script from breaking completely.
🔹 What is a Try-Catch Block?
A try-catch block is a way to “try” running some code and “catch” any errors that happen. This helps keep your application running smoothly.
📝 Basic Example: Using Try & Catch
Let’s handle an error gracefully using a try-catch block.
<?php
try {
echo 10 / 0; // Oops! Division by zero causes an error
} catch (Exception $e) {
echo "Caught an error: " . $e->getMessage();
}
?>
Oops! 🤦♂️ PHP doesn’t like dividing by zero, but our catch block prevents a crash.
🔹 Throwing an Exception
You can manually throw an exception using throw inside a try block.
📝 Example: Throwing and Catching an Exception
<?php
function checkAge($age) {
if ($age < 18) {
throw new Exception("Sorry, you must be 18+.");
}
return "Access granted!";
}
try {
echo checkAge(16);
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
?>
Result: This throws an error if the age is below 18.
🔹 Catching Multiple Exceptions
You can handle different types of exceptions separately using multiple catch blocks.
📝 Example: Handling Different Exceptions
<?php
try {
throw new Exception("Something went wrong!");
} catch (InvalidArgumentException $e) {
echo "Invalid argument: " . $e->getMessage();
} catch (Exception $e) {
echo "Caught Exception: " . $e->getMessage();
}
?>
Tip: The most specific exception types should be caught first.
🔹 Using finally (Always Executes)
The finally block runs no matter what—whether an exception occurs or not.
📝 Example: Try, Catch & Finally
<?php
try {
echo "Trying... <br>";
throw new Exception("Oops! An error occurred!");
} catch (Exception $e) {
echo "Caught: " . $e->getMessage() . "<br>";
} finally {
echo "This always runs! ✅";
}
?>
Result: The finally block ensures that some code always runs.
🎯 Key Takeaways
try→ Wraps risky code.catch→ Handles exceptions.throw→ Manually triggers an exception.finally→ Always executes, no matter what.
📝 Practice Time!
Try creating a function that throws an exception if an email is empty. Can you catch the exception and show a custom error message? 🤔