Как кастомизировать ексепшены в общем методе? Есть такой метод в общем сервисе, которые используется в нескольких местах в коде проекта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. Либо правильнее использовать какой то маппинг ексепшенов(в привязке на какие-то кастомные типы переданные в опциях метода) или сделать через фабрику или что то еще?

15 Сен 2022 в 19:54
221 +1
0
Ответы
1

В данном случае, лучше всего использовать фабрику или фасад для создания кастомных исключений. Например, вы можете создать фабрику исключений, которая будет создавать и возвращать нужный кастомный исключение в зависимости от переданных параметров.

Пример:

class CustomExceptionFactory {
public static function createCustomException($message) {
return new CustomException($message);
}
}
class Service {
public function checkParams(array $params) {
foreach($params as $param) {
if (!in_array($param, self::ARRAY_CONSTANT)) {
throw CustomExceptionFactory::createCustomException('Custom message');
}
}
}
}

Этот подход позволяет легко изменять и добавлять различные кастомные исключения без изменения уже существующего кода. Вместо передачи параметров в метод, вы просто вызываете фабрику для создания нужного исключения.

Таким образом, ваш код станет более гибким, расширяемым и легко поддерживаемым в будущем.

16 Апр в 17:57
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 436 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир