В программировании на Си, где вы должны выполнять очистку вручную, многое можно сказать о возврате из одной точки. Даже если сейчас нет необходимости что-то очищать, кто-то может отредактировать вашу функцию, выделить что-то и нужно очистить ее перед возвратом. Если это произойдет, это будет кошмарная работа, просматривая все обратные операторы.
В программировании на C ++ у вас есть деструкторы и даже теперь охранники выхода из области видимости. Все это должно быть здесь, чтобы гарантировать, что код в первую очередь безопасен для исключений, поэтому код хорошо защищен от преждевременного выхода и, следовательно, это не имеет логического недостатка и является чисто стилевой проблемой.
Я недостаточно осведомлен о Java, будет ли вызываться блочный код finally, и смогут ли финализаторы справиться с ситуацией, когда нужно что-то гарантировать.
C # Я, конечно, не могу ответить на.
D-язык дает вам надлежащие встроенные средства защиты при выходе из области видимости и поэтому хорошо подготовлен к досрочному выходу и поэтому не должен представлять проблему, кроме стиля.
Во-первых, функции, конечно, не должны быть такими длинными, и, если у вас огромный оператор switch, ваш код, вероятно, также будет плохо обработан.