Size: a a a

2020 December 30

VS

Viktor Sakharov in phpGeeks
Андрей
Создай отдельный Exception для бд и конкретизируй ошибку
У меня так и сделано)
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
вроде как Exception делают тогда когда дальнейшее продолжение выполнения невозможно
а return если ошибка не критичная и можно продолжать но как-то по другому
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
кстати а почему бы не возвращать пустой репозиторий, хм... тогда и union types нет и exception отсутствует, можно просто проверить результат на empty
источник

VS

Viktor Sakharov in phpGeeks
Дмитрий Щербаков
кстати а почему бы не возвращать пустой репозиторий, хм... тогда и union types нет и exception отсутствует, можно просто проверить результат на empty
Ты имеешь ввиду создать специальный Result-объект?
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
ага
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
раз сущность не найдена, вернуть пустую сущность, ведь в ином случае она будет найдена... это если запрос успешно выполнился, типа 404, а вот если запрос сфейлился тогда ексепшин только
источник

AS

Alexandr Sakharoff in phpGeeks
Viktor Sakharov
Отцы, вопрос такого плана. Что должен возвращать репозиторий, если сущность не найдена? null, или Exception?
Три варианта;
1. Nullobject
2. Пустую коллекцию
3. Исключение

Все правильные, выбор зависит уже от конкретного случая.
источник

FL

First Last in phpGeeks
Viktor Sakharov
Отцы, вопрос такого плана. Что должен возвращать репозиторий, если сущность не найдена? null, или Exception?
Option<User>
источник

FL

First Last in phpGeeks
Alexandr Sakharoff
Три варианта;
1. Nullobject
2. Пустую коллекцию
3. Исключение

Все правильные, выбор зависит уже от конкретного случая.
Ага, все правильные
источник

FL

First Last in phpGeeks
Зачем вообще нарошно делать в своем коде null?
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
кидать ексепшин из-за 404, ну такое )
источник

V

Victooor in phpGeeks
Viktor Sakharov
Отцы, вопрос такого плана. Что должен возвращать репозиторий, если сущность не найдена? null, или Exception?
Ещё есть негласная договорённость. Если getUserById, то исключение. Если findUserById то нулл
источник

V

Vladimir in phpGeeks
Дмитрий Щербаков
кидать ексепшин из-за 404, ну такое )
а почему нет? если этот эксепшн потом в 404 статус код превратися: GET /user/123 -> HTTP 404 NOT FOUND - вроде логично, нет? вопрос договоренностей
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Vladimir
а почему нет? если этот эксепшн потом в 404 статус код превратися: GET /user/123 -> HTTP 404 NOT FOUND - вроде логично, нет? вопрос договоренностей
ну типа ексепшин это что-то прям страшное случилось, а товарищу вон надо если объекта нет то он его создаст, в этом кейсе ексепшин избыточен кмк
источник

V

Vladimir in phpGeeks
Дмитрий Щербаков
ну типа ексепшин это что-то прям страшное случилось, а товарищу вон надо если объекта нет то он его создаст, в этом кейсе ексепшин избыточен кмк
не обязательно сташное) а товарищу вон надо если объекта нет то он его создаст - вот этого не увидел
источник

V

Victooor in phpGeeks
На самом деле нет одного правильного подхода. Зависит от бизнеслогики. Например, запрашиваем статью по слагу. Статьи нет, кидается эксепшен. Ищем статьи по тегу. Статей нет, возвращаем нулл или пустой массив. Ошибки тут нет, эксепшен кидать странно
источник

ДЩ

Дмитрий Щербаков... in phpGeeks
Victooor
На самом деле нет одного правильного подхода. Зависит от бизнеслогики. Например, запрашиваем статью по слагу. Статьи нет, кидается эксепшен. Ищем статьи по тегу. Статей нет, возвращаем нулл или пустой массив. Ошибки тут нет, эксепшен кидать странно
а тут начинается странная логика. почему один метод кидает ексепшин, а другой null?
источник

V

Victooor in phpGeeks
Дмитрий Щербаков
а тут начинается странная логика. почему один метод кидает ексепшин, а другой null?
Потому что иногда проще работать без эксепшенов. Выше написал различие в наименованиях
источник

EK

Evgeniy Kuvshinov in phpGeeks
Victooor
На самом деле нет одного правильного подхода. Зависит от бизнеслогики. Например, запрашиваем статью по слагу. Статьи нет, кидается эксепшен. Ищем статьи по тегу. Статей нет, возвращаем нулл или пустой массив. Ошибки тут нет, эксепшен кидать странно
ну вот не согласен насчет экзепшена при запросе статьи по слагу
это вполне предсказуемый результат что иногда могут запросить то чего нет и кидать тут экзепшен нет смысла.

экзепшен нужен там где результат мало предсказуемый
например хочешь записать в файл, а место на диске кончилось (можно сказать что предсказуеый, но каждый раз обрабатывать эту ситуацию мало хочется)
или например пишешь данные на диск и бац он из строя вышел, тоже исключение норм вариант
или ты пишешь в файл, а файл на удаленном сервере и в этот момент разрыв коннекта был и тут уже сетевое исключение
источник

СМ

Сергей Моисеев... in phpGeeks
Evgeniy Kuvshinov
ну вот не согласен насчет экзепшена при запросе статьи по слагу
это вполне предсказуемый результат что иногда могут запросить то чего нет и кидать тут экзепшен нет смысла.

экзепшен нужен там где результат мало предсказуемый
например хочешь записать в файл, а место на диске кончилось (можно сказать что предсказуеый, но каждый раз обрабатывать эту ситуацию мало хочется)
или например пишешь данные на диск и бац он из строя вышел, тоже исключение норм вариант
или ты пишешь в файл, а файл на удаленном сервере и в этот момент разрыв коннекта был и тут уже сетевое исключение
Если есть идентификатор, но нет записи связанной с этим идентификатором - наверное это не очень штатная ситуация и можно кинуть исключение.
источник