Madzi писал(а):
Прерывают.
Не прерывают. См. мой ответ Algo.
Madzi писал(а):
Просто нужно грамотно условие выхода составлять, чтобы оно было понятно при обозрении, а не запутывать умышленно.
Так я ж уже упоминал, что как раз стремление записать условие в одном месте и не дает сделать его наглядным. Вкупе с секцией VAR
Madzi писал(а):
Я уже говорил выше. Никто не запрещает писать FOR с RETURN, или пользоваться GOTO, но при этом не нужно говорить что программа структурная. Преимущества структурного подхода давно доказаны, поэтому спорить по этому поводу не вижу смысла.
Я не собираюсь спорить с преимуществом структурного подхода. Я принципиально против приравнивания RETURN к GOTO.
Madzi писал(а):
По поводу исключений скажу следующее: любое исключение это тот же самый GOTO на обработку ошибок (отложенная обработка). Появились исключения не от хорошей жизни, а от упавшего уровня программистов разработчиков, которые вместо грамотного построения программы "ловят" ошибки на выходе.
Гы
Опять без комментариев %) Почитайте про механизм исключений хоть в википедии, что-ли... А то слова try/catch знаете, а зачем это нужно и какие проблемы призвано решать - нет.
Madzi писал(а):
Если мы НЕ ЗНАЕМ какие ошибки могут возникнуть в foo (); (например библиотека стороннего разработчика и он открыл только часть исключений), то грамотно обработать ситуацию мы не можем.
Ужас
И чем это отличается от ситуации, когда вместо "неизвестного" исключения возвращается "неизвестный" INTEGER? Ну кроме того, что INTEGER можно забыть проверить и полезной информации из него вытащить можно намного меньше?
(2Alexey_Donskoy: не, ну как тут не прикалываться, а?
Madzi писал(а):
Пример 1:
try {
a = x / y;
} catch (Exception e) {
System.out.writeln("Деление на нуль.");
}
Пример 2:
IF x = 0
THEN Out.String("Делитель равен нулю"); Out.Ln;
ELSE a = x / y;
END;
Э... И к чему эти примеры?