Есть такой метод в общем сервисе, которые используется в нескольких местах в коде проекта
public function checkParams(array $params) {
foreach($params as $param) {
if (!in_array($param, self::ARRAY_CONSTANT)) {
throw new CustomException('Custom message');
}
}
}
Как правильно кастомизировать ексепшены с точки зрения чистого кода, ооп подхода, чтобы при вызове с разных мест использовать свой кастомный ексепшен?
Возможны ли такие подходы или может быть есть другие варианты?:
1. CustomException и 'Custom message' передавать в виде параметров или опций, примерно так:
public function checkParams($params, string $customExceptionClassName, string $customMessage) {
...
}
2. Либо правильнее использовать какой то маппинг ексепшенов(в привязке на какие-то кастомные типы переданные в опциях метода) или сделать через фабрику или что то еще?