w3resource

PHP Custom Exception Class: Creating and throwing custom exceptions

PHP Exception Handling: Exercise-2 with Solution

Write a PHP program that creates a custom exception class in PHP and throw an instance of it within a try block.

Sample Solution:

PHP Code :

<?php
class CustomException extends Exception {
    public function __construct($message, $code = 0, Throwable $previous = null) {
        parent::__construct($message, $code, $previous);
    }
    
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }
}

try {
    // Code that may throw a custom exception
    $roll_no = -15;
    
    if ($roll_no < 0) {
        throw new CustomException("Roll number cannot be negative.");
    }
    
    echo "Roll number: " . $age;
  } catch (CustomException $e) {
    // Custom exception handling code
    echo "An error occurred: " . $e->getMessage();
}
?>

Sample Output:

An error occurred: Roll number cannot be negative.

Explanation:

In the above exercise,

  • In this example, we create a custom exception class CustomException that extends the base Exception class. The custom exception class has a constructor that calls the parent constructor and overrides the __toString() method to provide a custom string representation of the exception.
  • Inside the try block, we have a check for a negative age. If the condition is true, we throw an instance of the CustomException class with the message "Age cannot be negative."
  • The catch block specifically catches instances of the CustomException class, allowing us to handle the custom exception separately. In this case, we simply display the error message using $e-<getMessage().

Flowchart:

Flowchart: Creating and throwing custom exceptions

PHP Code Editor:

Contribute your code and comments through Disqus.

Previous: Basic usage of try-catch blocks.
Next: Divide with zero denominator check.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/php-exercises/exception-handling/php-exception-handling-exercise-2.php