Является ли это исключительной ситуацией?

Например есть класс, который в конструктор получает некоторые входные данные, которые необходимы для инициализации объекта.

Например:

class User
{
    private $userData;

    public function __construct(int $userId) {
        $this->userData = ...;
        // ...
    }

    // ...

    public function getId(): int
    {
        return $this->userData["ID"];
    }

    public function getFullName(): string
    {
        return implode(
            " ",
            clearArray(
                [
                    $this->userData["NAME1"],
                    $this->userData["NAME2"],
                    $this->userData["NAME3"]
                ]
            )
        );
    }

    public function getLogin(): string
    {
        return $this->userData["LOGIN"];
    }

    public function getEmail(): string
    {
        return $this->userData["EMAIL"];
    }
}

Что делать, в случаях, когда по входным данным невозможно инициализировать объект ? Например, по заданному Id не удалось найти пользователя ? Выбрасывать исключение ? или создать доп. метод isExist(): bool ?

Я склонен к первому варианту, т.к. во втором случае, нужно будет, каждый раз, перед использование методов класса, писать проверку if($user->isExist()) ..

Как принято решать подобные задачи ?


Ответы (0 шт):