@evil0o

Как правильно в конструкторе обработать исключение?

Есть банальный класс user, в нем конструктор. В конструктор как входные параметры поступают логин и пароль.
Как правильно обработать в конструкторе ситуацию если логин и пароль неверные. Другими словами чтоб функции внутри класса зависящие от авторизации адекватно работали(не работали), при их вызове из вне и внутри класса.
Или лучше вызвать пользовательскую ошибку. и пусть ее обрабатывают внешне.
  • Вопрос задан
  • 2269 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1) Работа конструктора - засетить значения и инициализировать объект. В конструкторе не стоит подключаться к базе, обращаться к файловой система, и делать хоть что-то сложнее простого вызова сеттеров. Так же нестоит вызывать из него методы которые делают что-либо из перечисленного.

2) Класс User не должен ничего знать о том как проверить свой логин и пароль. За это должен отвечать какой-нибудь SecurityContext.

3) Делайте проверку тогда, когда у вас попросили. Что-то типа в методе isFullyAuthorized и т.д.

Далее подсказать ничего толком не выйдет так как не известно что у вас там происходит, зачем исключения и т.д. В любом случае вы должны выбросить какое-то свое исключение аля BadCredentials и отдать пользователю 400-ую или 401 ошибку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы