KitchenLee
KitchenLee

Reputation: 115

How to structure a simple PHP Exception class

Hi devs

I have a simple PHP OO project. I have an exception who appears 2 times. Something like :

if (!$x) {
    throw new Exception("Don't use this class here.");
}

I want to dev a class in order to edit this code like that :

if (!$x) {
    throw new ClassUsageException();
}

How to dev the Excpetion class with default Exception message ?

Thanks

Upvotes: 2

Views: 227

Answers (2)

VolkerK
VolkerK

Reputation: 96189

I'd advise creating new exception classes sparsly. It is no fun to check a multitude of exceptions left and right. And if you really feel the need, check what kinds of exceptions are already defined and where in that hierarchy your exception will fit and then extend that class, i.e. give the developers a chance to catch a (meaningful) range of exceptions without having to explicitly write one catch-block after the other.

I'm really not sure what you're trying to achieve here with Don't use this class here. but it could be an InvalidArgumentException (or something derived from that exception, if you really must). There are other mechanisms to prevent an instance of a certain class at a specific place though.

Upvotes: 1

Daan
Daan

Reputation: 12246

You can extend the Exception class

<?php
Class ClassUsageException extends Exception {

    public function __construct($msg = "Don't use this class here.", $code = 0) {
         parent::__construct($msg, $code); //Construct the parent thus Exception.
    }

}


try {
    throw new ClassUsageException();
} catch(ClassUsageException $e) {
   echo $e->getMessage(); //Returns Don't use this class here.
}

Upvotes: 0

Related Questions