In this tutorial, you shall learn how to define multiple catch blocks in a try-catch statement in PHP, with the help of example programs.

PHP – Multiple Catch Blocks

In PHP try catch statement, if the try block can throw more than one type of Exception, we can have more than one catch block. Just add required catch blocks to the try-catch.

Syntax

The syntax of try catch statement with multiple catch blocks is

try {
    //code
} catch (Exception1 $e) {
    //code
} catch (Exception2 $e) {
    //code
} catch (Exception3 $e) {
    //code
}

Replace Exception1, Exception2, Exception3, .., with the type of exceptions that the try block can throw.

Example

In the following example, we have some code in try block that throws user defined Exceptions: NumberTooLargeException or NumberTooSmallException based on the value of $x. We write multiple catch blocks to catch these different exceptions.

PHP Program

<?php
  class NumberTooLargeException extends Exception { }
  class NumberTooSmallException extends Exception { }

  try {
    $x = 152;

    if ($x < 10) {
      throw new NumberTooSmallException("The given number is too small.");
    } elseif ($x > 90) {
      throw new NumberTooLargeException("The given number is too large.");
    } else {
      echo "x is within the desired range.";
    }
  } catch (NumberTooLargeException $e) {
    //handle exception
    echo $e->getMessage();
  } catch (NumberTooSmallException $e) {
    //handle exception
    echo $e->getMessage();
  }
?>

Output

If you try with $x = 5, the code in try block throws NumberTooSmallException, and the respective catch block handles the exception.

Conclusion

In this PHP Tutorial, we learned how to write multiple catch blocks in a try-catch statement.