я был тест в методологии ООП и был задан следующим True \ ложного вопроса:использует исключение для возврата из законной рекурсии?
«Метание исключения для того, чтобы вернуться из глубокого рекурсивного вызова считается законным использованием механизма исключений».
Я считаю, что это неверно, потому что это не исключение в потоке приложения, но мой учитель отметил это как истину, заявив, что это быстрый способ вернуться из глубоких рекурсий.
По-моему, это аналогии для упаковки блока с try \ catch при работе с IndexOutofBounds, что неверно кодирует.
Что, по-вашему, по вашему мнению?
Ну, если вы рекурсивно 10.000 раз, то возврат * является действительно исключительным, не так ли? И, да, это нарушает нормальный поток инструкций. – Ingo
@Ingo Возврат * не * исключительный. – johnchen902
Плюс есть серьезные WOMF-комедии, когда вы помещаете 'catch (Exception e) ...' где-то в стеке по несвязанным причинам, и вдруг ваша функция не возвращается должным образом. – jozefg