mse писал(а):Although 'return'/'exit' is dangerous because actually it is a hidden 'goto end' which bypasses possible cleanup code and 'return'/'exit' can easily been overlooked if deeply nested and seldom triggered.
Преимущество "exit", "break", "continue" в том, что глядя на эти операторы однозначно понимаешь, куда произойдет переход. А "goto" для своего понимания, нужно найти и увидеть метку, и сопоставить название метки и идентификатора после goto. В разноцветной RAD системе, еще можно наглядно изобразить метки, но на уровне блокнота они достаточно опасный инструмент. Собственно "goto" - это переход куда-то, непонятно куда. А "exit" - это явный и очевидный выход из функции/процедуры.
Чтобы в реальной практике избегать ситуаций с пропущенными после "exit" операциями по очистке, закрытию ресурсов и т.п., то используется структуризация программы. То есть большая процедура разбивается на ряд малых. И там, где используется "exit", там вообще ничего не открывается и не выделяться. Оператор "exit" позволяет избавится от многоэтажных IF, делая процедуру более наглядной, т.е. в начале функции/процедуры инициализируется возвращаемое значение по умолчанию, и далее идет ряд проверок, по которым мы завершаем выполнение функции не доходя до основного алгоритма. Вот это чуть ли не единственный разрешенный у нас способ применения "exit". Замена "exit" на "goto" в таких случаях снизит наглядность и однозначность программного кода.
Добавлено спустя 11 минут 35 секунд:debi12345 писал(а):при исследовании новейших версий выяснилось,что FAR-ский NetBox оказываеся умеет крутые дела
3-й FAR умеет подкрашивать текст паскалевских программ, научился хорошо работать с UNICODE и др.
Но когда приходится удаленно компилировать проект, то я все файлы переношу на удаленную сторону не через FTP, а через SVN или GIT. Любые существенные исправления исключительно на компе, где сам сижу, опять же используя функционал систем контроля версий, для ветвления, слияния, фиксации ревизий и т.п. Поэтому работая с удаленным сервером (на удаленные рабочие места я уже переписываю исполняемые файлы без исходников), я сижу в RAD для редактирования текста программ. Причем использую дельфовскую RAD как редактор кода в т.ч. для работы с программами Lazarus (оболочка которого используется для составления форм и компиляции проекта) и MSEide+MSEgui. Каких-то особых проблем и неудобств я в этом не вижу. Сейчас меня все устраивает, но пока синтаксис текста программ на Delphi, Lazarus и MSEgui одинаков, что позволяет эффективно работать с любым вариантом.