Сообщение от Mаxmaxmаximus
|
ну есть 2 канала отдачи от функции, канал верного решения, и канал ошибок
|
Ну, начнем с того, что канал отдачи от функции это ретурн, throw к функциям отношения не имеет. Он бросит ошибку вообще мимо стека, либо до первого catch, либо на самый верх.
Сообщение от Mаxmaxmаximus
|
а опытные часто по ошибки и верные результаты и ошибки отправляют по каналу ретурн, а чтобы пользователь функции отличал что есть что, ошибку как бы обозначюают заведомо невозможными данными, напрмиер если индекс найден то возвраазется число, а если нет, то это ошибка и надо бросить исключение, но фуункция отправляет по тому же ВЕРНМОУ каналу число -1 (а индексы не могут быть -1) и это как бы сигнал для пользователя функции что функция не отработала.
|
Ну и что? Пользователю не обязательно валить программу, если в массиве не нашлось нужного включения. Это вполне годный паттерн, зависит от задачи, как и любой другой имеет границы применимости.
Собственно, по Вашей логике получается, что try вообще не нужен.