Зарегистрироваться | Поиск |
Результаты опроса: Какой вариант вы бы предпочли? И почему? | |||
validateAndWrite() + validateAndWriteNoThrow() | 1 | 8.33% | |
validateAndWriteOrThrow() + validateAndWrite() | 0 | 0% | |
validateAndWrite(boolean noThrow = false) | 1 | 8.33% | |
validateAndWrite(boolean noThrow = true) | 0 | 0% | |
validateAndWrite(boolean throwIfError = false) | 0 | 0% | |
validateAndWrite(boolean throwIfError = true) | 2 | 16.67% | |
я предложил свой вариант в этой ветке | 2 | 16.67% | |
затрудняюсь ответить, просто хочу посмотреть результаты опроса | 6 | 50.00% | |
Голосовавшие: 12. Вы ещё не голосовали в этом опросе |
|
Опции темы |
02.08.2021, 09:59 | #21 |
Участник
|
Цитата:
Сообщение от belugin
В дотнете tryxxx
это тот же самый случай. Только с другого конца. Спасибо! Жаль, что для x++ бесполезен из-за "особенностей" обработки try/catch в транзакциях. ============= причем такие соглашения не дают абсолютно никаких гарантий. tryxxx не гарантирует, что метод не бросит исключений (что все исключения обрабатываются) *noThrow тоже не гарантирует, что метод не бросит исключений *OrThrow тоже ничего не гарантирует. однако из всех синтаксических соглашений мне больше нравится OrThrow поскольку сообщает, что в этом месте программист явно добавил свои исключения, и больше никаких обещаний такое именование не дает. Что дает читающему абсолютно понятный "контракт". собственно поэтому в вопросе явно указан [CodeStyle] и задан вопрос о ваших предпочтениях. а не о том, "как правильно". Последний раз редактировалось mazzy; 02.08.2021 в 10:04. |
|
02.08.2021, 10:40 | #22 |
Участник
|
Цитата:
X++: strFmtOrThrow(getFormatStringFromSetupTableOrThrow(), transaction.calculateTaxAmountOrThrow()); С моей точки зрения OrThrow больше, так что можно принять его по умолчанию и как-то выделять методы которые, наоброт, не выкидывают исключения. |
|
02.08.2021, 10:59 | #23 |
Участник
|
Цитата:
Вот ведь радикальный фундаменталист... Цитата:
Цитата:
(возвращаясь к опросу) |
|
02.08.2021, 11:21 | #24 |
Участник
|
подумал...
Цитата:
в этих платформах рекомендуется делать настолько длинные имена насколько нужно, чтобы точно донести до читающего назначение метода сравни X++: strFmtOrThrow( getFormatStringFromSetupTableOrThrow(), transaction.calculateTaxAmountOrThrow() ); |
|
02.08.2021, 12:20 | #25 |
Участник
|
|
|
02.08.2021, 12:22 | #26 |
Участник
|
Если есть reasonable default, то префикс не нужен, чтобы точно донести...
|
|
02.08.2021, 14:27 | #27 |
Участник
|
Да. Логика другая. Это же не методы ValidateAndRun() и ValidateAndRunNoThrow(). В терминах исходного вопроса тут уместен был бы ValidateNoThrow()
Цитата:
Цитата:
1. Рассматриваемый здесь CodeStyle - не стандарт. Собственная разработка 2. При создании методов "естественным путем" требуется рефакторинг, который, в свою очередь, требует времени и сил. Вот сильно сомневаюсь, что с этим станут заморачиваться Т.е. это все-таки проблемы той команды, которая этот самый CodeStyle будет поддерживать... Цитата:
А вот если задача оказалась не разовая, а часто повторяется, вот в этом случае уже повод задуматься о рефакторинге и каком-то более удобном способе вызова Цитата:
Цитата:
Т.е. в исходной постановке задачи в данном теме - это метод ValidateWrite() скопировать в метод ValidateWriteNoThrow(), а в самом ValidateWrite() вывести исключение, если проверка с ошибкой Не надо "копать глубже" и делать ValidateAndWriteNoThrow() - это уже явно лишнее и избыточное решение В теории. На практике возможны варианты. И вот не знаю, к счастью или к сожалению. Нет однозначного ответа
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
03.08.2021, 00:30 | #28 |
Microsoft Dynamics
|
И так и так. В одном случае так, а в другом по другому. Например, код вызываемый на кнопке для проверки текущей строки или обработка кучи записей в цикле, что бы найти все ошибки во множестве записей.
Это как спросить, "вы будете есть ложкой или вилкой" и не уточнить меню. Отвечю универсально: буду есть и ложкой, и вилкой, и еще попрошу нож Последний раз редактировалось AlexSD; 03.08.2021 в 00:36. |
|
|
|