Examples of Implementing Error Handling in PHP

Explore practical examples of implementing error handling in PHP to enhance your coding skills.
By Jamie

Understanding Error Handling in PHP

Error handling is a crucial aspect of programming, as it helps developers manage unexpected issues that arise during runtime. In PHP, proper error handling ensures that applications can gracefully handle errors without crashing or displaying sensitive information to users. Below are three diverse examples that demonstrate effective error handling techniques in PHP.

Example 1: Basic Try-Catch Error Handling

In this example, we will implement a basic try-catch block to handle exceptions when connecting to a database. This is a common use case in web applications where database connectivity is essential.

When attempting to establish a database connection, if there is an issue (like incorrect credentials), an exception will be thrown. Using a try-catch block allows us to catch this exception and handle it appropriately.

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

try {
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        throw new Exception("Connection failed: " . $conn->connect_error);
    }
    echo "Connected successfully";
} catch (Exception $e) {
    echo "Error: " . $e->getMessage();
}
?>

Notes:

  • The mysqli extension is used here for database connection. You can also use PDO for a more flexible approach.
  • The Exception class allows us to create custom error messages.

Example 2: Custom Error Handling Function

In this example, we will create a custom error handling function to manage errors and log them for future reference. This is useful for debugging and maintaining an application.

We will set a custom error handler that logs errors to a file instead of displaying them on the screen, enhancing security and usability.

<?php
// Set custom error handler
function customErrorHandler($errno, $errstr, $errfile, $errline) {
    $logMessage = "Error [$errno]: $errstr in $errfile on line $errline\n";
    error_log($logMessage, 3, "error_log.txt");
    echo "An error occurred. Please check the log file for details.";
}

set_error_handler("customErrorHandler");

// Trigger an error
echo $undefined_variable;
?>

Notes:

  • The error_log() function writes the error message to a specified log file.
  • This method prevents displaying sensitive error information to users.

Example 3: Exception Handling with Multiple Catch Blocks

In this example, we demonstrate how to handle multiple types of exceptions using multiple catch blocks. This is useful when different exceptions require different handling strategies.

We will simulate a scenario where a file operation might fail due to different reasons, such as file not being found or permission issues.

<?php
function readFileContent($filename) {
    try {
        if (!file_exists($filename)) {
            throw new Exception("File not found: $filename");
        }
        if (!is_readable($filename)) {
            throw new Exception("File is not readable: $filename");
        }
        $content = file_get_contents($filename);
        echo $content;
    } catch (Exception $e) {
        echo "Error: " . $e->getMessage();
    }
}

// Call the function with a non-existent file
readFileContent("nonexistent.txt");
?>

Notes:

  • This example uses file operations to demonstrate exception handling.
  • You can extend the catch blocks to handle specific exceptions or add logging as needed.

These examples of implementing error handling in PHP illustrate various methods to manage errors effectively. By utilizing try-catch blocks, custom error handlers, and multiple catch blocks, you can enhance the robustness of your PHP applications.