Open buldezir opened 7 years ago
Хреновая логика, лучше возвращать bool. Проверку на сохранение или удаление нужно в коде делать всегда, потому что бывают различные фантастические ситуации.
Быстрее и проще выполнить
if (false === $model->save()) {
throw new \Exception('Error while save');
}
Нежели использовать try / catch
@max107 ну зато в catch у тебя сразу есть причина и даже разные причины, разных уровней. а при save: bool тебе надо куда-то записывать ошибки и потом доставать + там могут быть эксепшены уровнем ниже, которые все равно нужно обработать.
я ваще для себя вывел то что bool дожны возвращать методы отвечающие на вопрос (да\нет?). hasSmth, isSmth, canSmth и тд. save - это действие, а не вопрос.
И именно действие должно возвращать статус: да или нет. Если тебе нужно отловить ошибки, используй что то вроде Sentry и его аналоги.
Логика простая:
bool ты проверяешь если запись не сохранена, то бросаешь исключение. Sentry отлавливает.
exception ты проверяешь не бросилось ли исключение, чтобы узнать что за исключение. Передаешь в sentry / обрабатываешь сам.
Разницы никакой, но куча оберток в виде try catch обеспечена.
Throw exceptions on failed save/delete, instead of return bool