Sergey
===
Из БД false будет более ложный?
Сергей
Из БД false будет более ложный?
зависит от того, что юзаешь. fetch никто не отменял еще.
Golodnyi
зачем тебе вообще знать кто что вернул? Ты попросил данные, тебе сказали false, всё, вопрос закрыт)
Golodnyi
какая бы причина не была, данные ты не получишь
Golodnyi
но надо смотреть код, не понятно
Denis
если с бд косяк..то при создании объект бд будет false..
Sergey
какая бы причина не была, данные ты не получишь
Так как мне узнать, это нет данных, или false это и есть данные?
Golodnyi
у тебя бд false должна вернуть как успешный ответ?
Сергей
Так как мне узнать, это нет данных, или false это и есть данные?
тот же pdo тебе данные в чистом виде не отдает. чтобы получить значение тебе нужно fetch сделать.
Сергей
fetch будет работать, если я ничего не нашел в бд?
Golodnyi
у тебя функция возвращает какой то флаг, если флаг недоступен у тебя долно быть значение по умолчанию, в данном случае логика должна быть такой, что если в бд false и ты получил данные, ты вернул false, если бд не доступна ты вернул false с логикой что это значение по умолчанию, т.к. данные не доступны, если в бд true, вернул true, все хорошо
Golodnyi
но надо смотреть код, ниче не понятно
Golodnyi
нет
Sergey
Тогда ты с go попутал, в php 1 значение возращается
Golodnyi
просто дай код функции
Sergey
Какой функции?
Golodnyi
которую ты мучаешь и не можешь решить что вернуть из нее
Sergey
Нет у меня такого, я говорю что в случае отсутствия данных нужно исключение кидать
🦔
Поэтому и exception
когда я подобный вопрос задавал, мне сказали, что исключения это все равно, что goto и юзать их надо действительно в исключительных случаях, т.е. когда логика работает не так, как задумано
🦔
то есть в данном случае, было бы верным использовать исключения в том случае, если запрашивают данные, которые должны быть, но их нет
Sergey
И она не может знать должны ли они быть
Golodnyi
исключения это не когда данных нет
Golodnyi
исключения это когда ошибка
Golodnyi
например таблицы нет
Sergey
исключения это когда ошибка
Ты не прав, выйди за пределы php
🦔
И она не может знать должны ли они быть
доктрина вроде null возвращает, если нихуя не находит, а не эксепшн кидает
🦔
И она не может знать должны ли они быть
зато это знает погромист и он пишет код, который эту ситуацию обрабатывает
Golodnyi
Важен контекст
Сергей
Ты не прав, выйди за пределы php
Ну я вышел за пределы похапэ, например. Зашел в js. Сказал юзать эксепшны. Меня облили говном.
Golodnyi
Если ты спрашиваешь сколько юзеров, то при отсутствии записей надо отдавать ноль
🦔
если там отсутствие данных это норма, то исключение, с моей точки зрения, было бы не совсем правильно
Sergey
Если ты спрашиваешь сколько юзеров, то при отсутствии записей надо отдавать ноль
А если ты спрашиваешь сколько у юзера денег, а записи нет, то тоже 0?
Golodnyi
А если ты спрашиваешь сколько у юзера денег, а записи нет, то тоже 0?
если записей о движении баланса нет, тоесть приходов и расходов небыло, то да, ноль
Golodnyi
это зависит от стурктуры таблиц
Golodnyi
ты задаешь слишком общий вопрос и пока не будет ясна цель, ответов много
Sergey
доктрина вроде null возвращает, если нихуя не находит, а не эксепшн кидает
это legacy, pdo/mysql_ возращают строки, и там нет ситуации когда вернется null или false
Anonymous
В некоторых обертках есть count который возвращает 0 или количество записей
The Ant
отсутствие записи в бд это не ошибка блять!
The Ant
а вот некорректный запрос (синтаксис, например) уже ошибка. наркоманы чтоль ;D
Евгений
если мы не нашли записей по критериям - это одно
🦔
крч возвращать объект с данными, в котором сделать геттер на предмет, были ли данные действительно найдены или хуй там валялся
Евгений
ну например, покупал ли вася хлеб вчера
Евгений
нет записей - значит не покупал, это ок
Евгений
а если мы не нашли запись из конфига - то это уже ошибка
Anonymous
А если вася не смог заинсертить хлеб, это ошибка?
Евгений
кто-то руками в бд шарил
The Ant
а если мы не нашли запись из конфига - то это уже ошибка
для конфигов это другая ситуация. там обычно дефолт указывается, типа Config::get('my_param', 0); где ноль это дефолт в случае чего
craz I'm against,
https://gist.github.com/codedokode/65d43ca5ac95c762bc1a
Евгений
для конфигов это другая ситуация. там обычно дефолт указывается, типа Config::get('my_param', 0); где ноль это дефолт в случае чего
это не всегда возможно. допустим нам для работы необходим некий урл, мы его когда-то при установке например, указали. а теперь не можем его найти. ну и какой дефолт будет в таком случае?
Евгений
ну пусть пустая строка, но работать-то мы уже не можем
Евгений
ну согласен, что это уже ошибка?
The Ant
404 нот фаунд
The Ant
ошибка, но не ошибка бд
craz I'm against,
вы почему исключения ошибками-то называете?
The Ant
а как их называть?
Sergey
исключения
craz I'm against,
+
Sergey
ошибка это частный случай исключения
craz I'm against,
исключения - это исключительные события в приложении
craz I'm against,
они не обязательно являются ошибками
The Ant
википедии чтоль начитались )
Sergey
если валидатору email подсунули число, то это исключение а не ошибка
The Ant
не факт
craz I'm against,
например в обычном приложении у Маши указали пол мужской - это исключение, а в приложение для тайландской клиники по смене пола - это уже не исключение, а наоборот
Sergey
хорошо, это програмное исключение и человеческа ошибка
The Ant
как по мне непройденый валидатор это не исключительная ситуация а типичная
🦔
если валидатору email подсунули число, то это исключение а не ошибка
тащем-то нет, для валидатора это нормальная хуйня обрабатывать хуйню, и если пришла хуйня, то было бы логичным вернуть фолс, что валидация провалена
The Ant
т.е. ошибка
🦔
а не бросать исключение