| Результаты опроса: Какой вариант вы бы предпочли? И почему? | |||
| 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. | 
|  | 
|  | 
| 
 |