Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.219.98.26] |
|
Страницы: (37) « Первая ... 29 30 [31] 32 33 ... 36 37 ( Перейти к последнему сообщению ) |
Сообщ.
#451
,
|
|
|
Цитата Wound @ Ну так я тебе и привел нетривиальный пример, чтоб ты написал как ты это сделаешь, если тебе нужно это вызвать буквально в паре мест. Мне влом о его тривиальности спорить. Считаешь его нетривиальным - ок, но поскольку я не вижу в нём ничего принципиально отличающегося от твоего первого примера с указателями, переписывать я его смысла не вижу. Цитата Wound @ Вся фишка в том, что если у тебя произойдет исключение внутри эти методов, и ты это исключение не поймаешь в этих методах, то JS у тебя просто не получит нужный ему ответ. Он и так его не получит, потому что метод с ошибкой завершился Цитата Wound @ Эээм, да как тупые вопросы то, ты ж пишешь что помнить какие исключения генерит функция не сложнее чем с кодами возврата. Ну вот так вот. Как ты будешь помнить, где тебе надо вызывать метод GetSomeMethod, а где PostSomeMethod из твоего примера чуть выше? Ровно из этой же оперы вопрос. |
Сообщ.
#452
,
|
|
|
Цитата OpenGL @ Он и так его не получит, потому что метод с ошибкой завершился Ты видимо не сторонник юзер френдли программ, исключение обработал, а дальше ибись оно все конем В том и дело, что твой метод мог поймать это исключение, и вернуть описание ошибки JS'у, который вывел бы пользователю вменяемый текст ошибки, раз уж ты юзаешь эти исключения на лево и на право, вместо кодов возврата. Но в твоем случае - пользователь будет неприятно удивлен, зато ошибку ты обработал, да Добавлено Цитата OpenGL @ Ну вот так вот. Как ты будешь помнить, где тебе надо вызывать метод GetSomeMethod, а где PostSomeMethod из твоего примера чуть выше? Ровно из этой же оперы вопрос. Они вызываются из аякса, разве ты не увидел? Плюс ты подменяешь понятия: "я не помню какую функцию мне нужно вызвать" vs "я не помню какие исключения эта функция может кинуть" - ортогональные понятия. Зачем ты их смешиваешь в кучу - загадка. Добавлено Эта функция сигнализирует о том, что открытие файла завершилось с какой либо ошибкой. Что не так? |
Сообщ.
#453
,
|
|
|
Цитата Wound @ Эта функция сигнализирует о том, что открытие файла завершилось с какой либо ошибкой. Что не так? Ни о чем она не сигнализирует. Она возвращает признак, открыто что-то или нет. |
Сообщ.
#454
,
|
|
|
Цитата D_KEY @ Ни о чем она не сигнализирует. Она возвращает признак, открыто что-то или нет. Интересно, а если не открыто то как ты интерпретируешь результат? Добавлено D_KEY, давай ты не будешь играть в педанта. Меня если честно очень сильно бесит, когда ты начинаешь быть педантом. |
Сообщ.
#455
,
|
|
|
Цитата Wound @ Цитата D_KEY @ Ни о чем она не сигнализирует. Она возвращает признак, открыто что-то или нет. Интересно, а если не открыто то как ты интерпретируешь результат? Зависит от ситуации, может и не открывал никто Ошибка, это когда ты что-то делаешь, а оно не делается Если это штатная ситуация в твоем случае- заводишь option/result, если исключительная и ты не знаешь что делать - кидай исключение. |
Сообщ.
#456
,
|
|
|
bool - по сути код возврата. true - открыт, false - не открыт. Че вы от меня еще хотите?
Добавлено Цитата D_KEY @ Ошибка, это когда ты что-то делаешь, а оно не делается Да, открываю файл, а он не открывается. Соответственно false будет ошибкой. Хорошо, измени там "код ошибки" на "код возврата". Если тебе станет легче. |
Сообщ.
#457
,
|
|
|
Цитата Wound @ D_KEY, давай ты не будешь играть в педанта. Меня если честно очень сильно бесит, когда ты начинаешь быть педантом. А ты перестанешь валить в кучу не связанные вещи? Добавлено Цитата Wound @ Да, открываю файл, а он не открывается. В методе is_open? Добавлено Цитата Wound @ Хорошо, измени там "код ошибки" на "код возврата". Это не код возврата, это просто возвращаемое значение. Вот если бы у тебя был метод bool open(...), тогда ок. Ты это имел в виду? |
Сообщ.
#458
,
|
|
|
Цитата D_KEY @ В методе is_open? метод Is_open нужен для проверки открытия. Что не так? Цитата D_KEY @ Это не код возврата, это просто возвращаемое значение. Вот если бы у тебя был метод bool open(...), тогда ок. Ты это имел в виду? Нет, я имел ввиду ровно то, что написал. У тебя есть целый класс fstream, и как в нем организованы эти возвращаемые значения - без разницы. Хоть в виде метода, хоть в виде возвращаемого значения в функции, которую юзаешь. Добавлено Цитата D_KEY @ А ты перестанешь валить в кучу не связанные вещи? Я не валю несвязанные вещи в кучу. Просто некто докапывается до каких то мелочей извращая общий смысл сказанного. |
Сообщ.
#459
,
|
|
|
Цитата Wound @ Цитата D_KEY @ В методе is_open? метод Is_open нужен для проверки открытия. Что не так? Он нужен для проверки состояния, а не для открытия файла или проверки ошибок при открытии. Я вообще не понимаю, что ты хочешь всем этим сказать. is_open будет noexcept, например. |
Сообщ.
#460
,
|
|
|
Цитата D_KEY @ Он нужен для проверки состояния, а не для открытия файла или проверки ошибок при открытии. Я вообще не понимаю, что ты хочешь всем этим сказать. is_open будет noexcept, например. Да причем тут твой noexсept? Смешались в кучу кони, люди? Ты говоришь - это нужно для проверки состояния, и тут же чешешь что это не код возврата. Тогда по твоей логике, получается что в этом коде, который OpenGL приводил: void SomeFunc(int var1, int var2, int* error) error - это тоже не код возврата, а блин out параметр, внезапно. Так что is_open - ровно такой же код возврата. Как это оформлено, это уже другой вопрос. |
Сообщ.
#461
,
|
|
|
Цитата Wound @ error - это тоже не код возврата, а блин out параметр, внезапно. Это out параметр, который является кодом возврата. Добавлено Цитата Wound @ Так что is_open - ровно такой же код возврата. Допустим. Код возврата чего? |
Сообщ.
#462
,
|
|
|
Цитата Wound @ Все не так. Ты попутал ошибку с штатным возвращаемым значением. Чтобы было понятнее, приведи как бы выглядела сигнатура твоей функции bool is_open(), если бы обработка ошибок была бы сделана на исключениях. Эта функция сигнализирует о том, что открытие файла завершилось с какой либо ошибкой. Что не так? |
Сообщ.
#463
,
|
|
|
Цитата D_KEY @ Это out параметр, который является кодом возврата. А это метод, который является кодом возврата. Цитата D_KEY @ Допустим. Код возврата чего? По моему название этого метода говорит само за себя. Цитата applegame @ Все не так. Ты попутал ошибку с штатным возвращаемым значением. Чтобы было понятнее, приведи как бы выглядела сигнатура твоей функции is_open, если бы она была сделана на исключениях. А зачем ты смешиваешь исключения и коды возврата? Возьми GetLastError - как бы выглядела сигнатура этой функции GetLastError, если бы она была сделана на исключениях ? Добавлено Код возврата не обязан быть ошибкой. Вы судя по всему путаете код ошибки с кодом возврата. Изначально я там оговорился, про ошибку, но думал поймут. Потом пояснил, что имеется ввиду что этим методом можно проверить смогли мы открыть файл или нет. А вы почему то накладываете коды возврата на исключения 1 в 1. Странно это. |
Сообщ.
#464
,
|
|
|
Цитата Wound @ А это метод, который является кодом возврата. У тебя странная терминология. Цитата Цитата D_KEY @ Допустим. Код возврата чего? По моему название этого метода говорит само за себя. Код возврата открытия файла? А если файл и не пытались открывать? Цитата Возьми GetLastError - как бы выглядела сигнатура этой функции GetLastError ? По-моему GetLastError возвращает код последней ошибки, а кодом возврата если и является что-то, то возвращаемое значение вызванной функции (признак ошибки в случае winapi). Хотя тут да, возможна путаница, т.к. признак ошибки и код ошибки разделены. |
Сообщ.
#465
,
|
|
|
Цитата Wound @ В том и дело, что твой метод мог поймать это исключение, и вернуть описание ошибки JS'у, который вывел бы пользователю вменяемый текст ошибки, раз уж ты юзаешь эти исключения на лево и на право, вместо кодов возврата. Ты уж определись - либо ты можешь исключение обработать на данном уровне, и тогда не обработать его случайно достаточно тяжело при условии если ты хоть немного представляешь себе требования, которые предъявляются к разрабатываемому тобой классу, либо не можешь, и тогда в js у тебя ничего толкового не вернётся. Цитата Wound @ Плюс ты подменяешь понятия: "я не помню какую функцию мне нужно вызвать" vs "я не помню какие исключения эта функция может кинуть" - ортогональные понятия. Я не смешиваю, а говорю, что по тупости эти два вопроса примерно на одном уровне. Не видишь смысла отвечать на мой? Аналогично я и на твой не вижу, по этой же самой причине. |