Вход на сайт
Оператор goto в языках программирования.
1443 просмотров
Перейти к просмотру всей ветки
except постоялец
в ответ svnv 01.02.12 10:15
В ответ на:
Дело в том, что "прыжок к ближайшему обработчику исключений" как раз и следует пути возврата
Дело в том, что "прыжок к ближайшему обработчику исключений" как раз и следует пути возврата
Да, по стеку мы возвращаемся обратно. Но в пределах рутины нас выбрасывает куда-то.
Запускаем рутину. Из нее запускаем следующую и еще одну. Где то там в начале 5-го уровня обваливаемся. Нас выкинет на тот уровень, на котором естъ обработка исключения и в то место рутины, где эта обработка помещена. То есть обвалились мы на 5-м уровне в начале рутины, а выкинуло нас на 3-й, куда-то в середину.
В обычном варианте мы выходим через ту дверь, через которую вошли. Зашли в рутину - вышли на следующей строчке.
В ответ на:
Вообще, часто нет принципиальной разницы как возвращаться
Вообще, часто нет принципиальной разницы как возвращаться
Есть. Все время вылазить по пожарной лестнице возможно, но как то не принято.
В ответ на:
Если ничего не найдено, то это обычный возврат или исключение? Однозначного ответа нет - делай как хочешь
Если ничего не найдено, то это обычный возврат или исключение? Однозначного ответа нет - делай как хочешь
Если это обычный поиск - то результат. Если этот поиск жизненно важен для последующей логики и искомый обьект в принципе должен существовать (то есть его отсутствие нарушает логику программы) - тогда исключение. Это позволит не таскать результат из уровня на уровень, когда в программе делать больше нечего - она не может дальше нормально функционировать.
P.S. На истину в последней инстанции не претендую
