Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Возвращаемое значение / 25 сообщений из 26, страница 1 из 2
04.01.2010, 16:29:54
    #36396861
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
Негде почитать по этому вопросу, но всё как бы интуитивно понятно, но....
В общем, если метод возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?
Просьба хотя бы пару ссылок.

Спасибо.
...
Рейтинг: 0 / 0
04.01.2010, 16:37:46
    #36396867
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriyche,

1. Метод никому ничего не должен.
2. Потому что если и при нормальном стечении обстоятельств и при ошибке он будет возвращать натуральные числа, то без костыля не узнать, чем является возвращаемое значение - кодом ошибки или результатом.
...
Рейтинг: 0 / 0
04.01.2010, 16:43:09
    #36396877
Mozok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriycheВ общем, если метод возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?

Интересно, это откуда Вы такое требование взяли?
...
Рейтинг: 0 / 0
04.01.2010, 16:43:33
    #36396878
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
an0nym,

Давайте рассмотрим этот метод
Понятно, что строка это массив и в ней не может быть элемента с отрицательным индексом
...
Рейтинг: 0 / 0
04.01.2010, 16:46:03
    #36396881
Mozok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriyche
Понятно, что строка это массив и в ней не может быть элемента с отрицательным индексом
И?
...
Рейтинг: 0 / 0
04.01.2010, 16:49:13
    #36396883
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
Вот, к примеру, есть у вас метод или функция, который/ая должна добавлять запись в таблицу БД и возвращать сгенерированный автоинкрементальный id. Что вы будете возвращать в случае неудачной попытки добавить запись?
...
Рейтинг: 0 / 0
04.01.2010, 16:52:03
    #36396888
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
Перефразирую
В общем, если метод (в процессе выполнения которого может произойти сбой) возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?
...
Рейтинг: 0 / 0
04.01.2010, 16:53:00
    #36396889
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriyche,

вот именно. Представьте, что у вас строка
Код: plaintext
десятьтыщпятьсотмильёноввосемьсотмиллиардовстопицотсимволов
, вы ищите в ней первое вхождение буквы "с", вам возвращается 3 позиция (2, так как в компьютерах отсчет принято вести с нуля). Теперь представьте, что в той же строке вы ищете первое вхождение цифры "0" - что вам должно вернуться? 1? 10? 1000000000000000000000000000000? 0? А как вы отличите, что 1 - это не позиция, на которой находится буква "е"? Что 10 - не где находится буква "я"? Про единицу с 30 нулями отдельный разговор - вы такое число сможете в INT засунуть? Я - нет. Про 0 - аналогично 1 и 10. And so on.
...
Рейтинг: 0 / 0
04.01.2010, 16:54:20
    #36396891
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriycheВот, к примеру, есть у вас метод или функция, который/ая должна добавлять запись в таблицу БД и возвращать сгенерированный автоинкрементальный id. Что вы будете возвращать в случае неудачной попытки добавить запись?
throw new Exception?
...
Рейтинг: 0 / 0
04.01.2010, 16:55:46
    #36396896
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
an0nym,

я не про то спрашивал, ваш ответ инвалидный
*имхо ставить не буду
...
Рейтинг: 0 / 0
04.01.2010, 16:57:01
    #36396898
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
an0nymthrow new Exception?
представьте что ваш метод - это метод веб-сервиса и вы никак, просто никак, отловить этот эксепшн не можете
...
Рейтинг: 0 / 0
04.01.2010, 16:57:10
    #36396900
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriychean0nym,

я не про то спрашивал, ваш ответ инвалидный
*имхо ставить не буду
Скорее так: вы не можете нормально задать вопрос, ваш вопрос - инвалидный. :)
...
Рейтинг: 0 / 0
04.01.2010, 16:58:08
    #36396902
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriychean0nymthrow new Exception?
представьте что ваш метод - это метод веб-сервиса и вы никак, просто никак, отловить этот эксепшн не можете
Ну так читайте выше, почему ответ меньше нуля.
...
Рейтинг: 0 / 0
04.01.2010, 17:00:07
    #36396904
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
an0nym,

an0nym
вот именно. Представьте, что у вас строка
Код: plaintext
десятьтыщпятьсотмильёноввосемьсотмиллиардовстопицотсимволов
... и много буков не по теме....
а свой вопрос я перефразировал пару постов выше
...
Рейтинг: 0 / 0
04.01.2010, 17:03:08
    #36396910
Mozok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
an0nym
throw new Exception?
+1.
an0nymСкорее так: вы не можете нормально задать вопрос, ваш вопрос - инвалидный. :)
+1 еще раз :). Нужно просто уметь отличать неудачи от удач. Вон в WinAPI Вы вообще ни про что не узнаете, пока не вызовете GetLastError и не посмотрите код ошибки (который, кстати, может быть любым целым числом).
...
Рейтинг: 0 / 0
04.01.2010, 17:06:01
    #36396915
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
an0nymНу так читайте выше, почему ответ меньше нуля.
Ответ на мой вопрос по любому является паттерном, я в этом очень уверен, могу я услышать его название? дальше я у гугла спрошу.
спасибо
...
Рейтинг: 0 / 0
04.01.2010, 17:07:31
    #36396919
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriycheПерефразирую
В общем, если метод (в процессе выполнения которого может произойти сбой) возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?

Конкретно по этому определению:
если метод при нормальном завершении возвращает именно целочисленное значение, а не натуральное и/или ноль, то он не то что не должен возвращать некоторое отрицательное значение, ему нельзя возвращать отрицательное значение, так как в таком случае ошибку от нормального завершения не отличить.

В таком случае следует возвращать два значения (произошла ли ошибка и результат метода/код ошибки) так или иначе: через массив, через in/out аргумент, через простановку флага возвращаемого значения (например, 01000001b - без ошибок, вернул -1; 11000001b - произошла ошибка с кодом -1).

Если же речь идет о натуральных числах при нормальном завершении метода, то в постах выше описано, почему следует возвращать отрицательное значение.
...
Рейтинг: 0 / 0
04.01.2010, 17:08:50
    #36396921
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
an0nymон не то что не должен возвращать некоторое *отрицательное значение*, ему нельзя возвращать отрицательное значение, так как в таком случае ошибку от нормального завершения не отличить.
*отрицательное значение в случае ошибки*
...
Рейтинг: 0 / 0
04.01.2010, 17:09:14
    #36396923
GrayStrannik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriycheНегде почитать по этому вопросу, но всё как бы интуитивно понятно, но....
В общем, если метод возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?Потому что нужно вернуть какое-то значение, которое заведомо нереализуемо в случае успеха и которое в коде легко проверить. Отдать дробное значение ранее было проблематично, да и проверять его замучаешься. Поэтому изобрели два способа сообщения функции об ошибке:

1. если функция возвращает целочисленное положительное значение, то при ошибке -1.

2. если функция возвращает указатель, то возвращается указатель на начало адресуемой памяти - традиционно там хранилась операционка и указателя на начало памяти существовать в программе не должно (кроме совсем спец. случаев).

Потом это соглашение распространилось повсеместно и стало удобным отраслевым стандартом.

Что Вам в нём не нравится?
...
Рейтинг: 0 / 0
04.01.2010, 17:13:45
    #36396930
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
an0nym,

Как я уже говорил выше, есть метод который возвращает сгенерированное автоинкрементальное значение ключа вставленной записи.
Т.е. работа происходит с целыми положитьными числами.
Мне интуитивно понятно, что в случае неудачного добавления записи или сбоя, как ошибку необходимо вернуть некоторое отрицательное значение.
Могу я услышать названеи этого паттерна, если таковой имеется?

Mozok,

куда вы плюсуете, я уже отписал причину невозможности отлавливания эксепшена?
ВинАПИ оставте при себе, язык реализации не важен
...
Рейтинг: 0 / 0
04.01.2010, 17:15:41
    #36396935
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
GrayStrannik,

Благодарю.
...
Рейтинг: 0 / 0
04.01.2010, 18:40:28
    #36397041
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriycheМне интуитивно понятно, что в случае неудачного добавления записи или сбоя, как ошибку необходимо вернуть некоторое отрицательное значение.Никакой интуиции тут нет. Это просто традиция въевшаяся в кровь.

dmitriycheМогу я услышать названеи этого паттерна, если таковой имеется?Нет, низкие языки (из которых и пошла эта традция) не заморчиваются никакими "паттернами". И вообще подгонка всего под паттерны это дурная идея.
...
Рейтинг: 0 / 0
04.01.2010, 23:43:26
    #36397315
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
White Owl...И вообще подгонка всего под паттерны это дурная идея.
Если без паттернов, то это как-то не по феншую выходит
*шутко
...
Рейтинг: 0 / 0
05.01.2010, 00:12:32
    #36397334
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
dmitriycheНегде почитать по этому вопросу, но всё как бы интуитивно понятно, но....
В общем, если метод возвращает целочисленное значение, то почему в случае неудачи он должен возвращать некоторое отрицательное значение?
Просьба хотя бы пару ссылок.
Ссылок не дам потому что лень. Скажу то, что помню навскидку. Существует такая старая программистская традиция. Функции ядра возвращают целочисленный результат. Смысловая нагрузка - полностью на откуп создателю этой функции. Например fread(...) - возвращает количество прочитанных из файла элементов. Другие функции могут возвращать перечислимый набор констант (коды ошибок). Почему возвращается целове число? Ну... это удобно с точки зрения стека и экономно. Отрицательные числа - просто прихоть. Очевидно так было удобно делать тесты на корректность завершения работы.
...
Рейтинг: 0 / 0
05.01.2010, 00:43:16
    #36397359
dmitriyche
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращаемое значение
mayton,

спасибо:)
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Возвращаемое значение / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]