Repeating an exception class in a single catch clause will not fail but it is not what the developer intended. Either the class is not
the one which should be caught, or this is dead code.
Having a subclass and a parent class in the same catch clause is also useless. It is enough to keep only the parent class.
This rule raises an issue when an exception class is duplicated in a catch clause, or when an exception class has a parent class in
the same catch clause.
Noncompliant code example
try {
throw new CustomException();
} catch(CustomException | Exception $e) { // Noncompliant. CustomException inherits from Exception
echo $e->message();
}
try {
throw new CustomException();
} catch(Exception | Exception $e) { // Noncompliant.
echo $e->message();
}
Compliant solution
try {
throw new CustomException();
} catch(Exception $e) {
echo $e->message();
}
try {
throw new CustomException();
} catch(CustomException $e) {
echo $e->getCustomMessage();
} catch(Exception $e) {
echo $e->message();
}