Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Конструкторы с параметрами уже работают, сейчас идет внутренне тестирование. Как закончим, появится в новом билде.
Без более полного соответствия C++ языку уж очень неудобно существующий код переносить в MQL5.
Нужен (управляемый программистом) механизм возвращения неудачи конструктора
.....
но думаю GetLastError() достаточно что бы контролировать ситуацию и не усложнять язык исключениями
Уважаемый ИгорьМ!
Существующая система обработки ошибок должна остаться, с этим никто не спорит!
Я хотел бы сказать два слова в защиту добавления механизма обработки исключений.
Исключения, при грамотном их использовании, как-раз упрощают процесс разработки, ибо отделяют логику программной единицы от обработки возможных непредвиденных ситуаций, т.е. исключений.
Получается меньше кода, т.к. обработка ошибок выносится в отдельную часть, что позволяет сделать ее более качественно, а сам код - более прозрачным, т.к. в нем содержится только логика и нет вперемешку с ней туевой хучи проверки ошибок.
Сейчас же везде приходится расставлять if(), и не факт, что вы в каждом таком месте сможете учесть все возможные ошибки. А раз не смог учесть ВСЕ ВОЗМОЖНЫЕ ОШИБКИ, то рано или поздно твоя программа вывалится, и, что самое интересное, ты не поймешь, почему!
При обработке исключений такое место будет у вас одно или несколько, но всяко намного меньше, чем при существующей парадигме обработки ошибок. И любая исключительная ситуация будет отловлена.
Ну, вы же явно активно используете функции при программировании? Если вам, к примеру, нужно несколько раз в программе получить значение некоего расчета, вы же, наверное, создадите функцию, которая возвращает значение этого расчета и потом будете вызывать ее, когда нужно?
Теперь представьте, уважаемый Ренат напишет - Функции это зло!
И каждый раз когда нам будет нужен этот расчет, мы будем полностью писать его полный код.
Абсурдность этого, в случае функций, понятна.
Но почему обработку исключений, этот супер полезный механизм, постигла такая печальная участь, лично мне непонятно совсем.
С каких хренов уважаемый Ренат сказал, что исключения - это зло, понять не могу.
Миллионы программеров используют их почти во всех современных языках программирования!!!
Я хотел бы сказать два слова в защиту добавления механизма обработки исключений.
...уважаемый Ренат сказал, что исключения - это зло, понять не могу.На тему же исключений есть своя ветка Уважаемые разработчики! Планируете ли Вы добавить в MQL5 обработку исключений? Там есть и ответы, и допссылки на материалы.
На тему же исключений есть своя ветка Уважаемые разработчики! Планируете ли Вы добавить в MQL5 обработку исключений? Там есть и ответы, и допссылки на материалы.
Нужен (управляемый программистом) механизм возвращения неудачи конструктора.
А смысл? Имхо, если объект не создался, значит все очень плохо -- это ведь не самостоятельный код. Тупо завершается выполнение и все, имхо.
Думается мне что некое подобие исключений нужно. Но тут есть одна деталька - на текущий момент среда в которой будет выполняться код (терминал) и язык не "готовы" к такому.
Тем более к такому пока не готовы как минимум половина из тех кто будет кодировать на MQL5.
Думается мне что некое подобие исключений нужно. Но тут есть одна деталька - на текущий момент среда в которой будет выполняться код (терминал) и язык не "готовы" к такому.
Тем более к такому пока не готовы как минимум половина из тех кто будет кодировать на MQL5.
Да ладно! ООП внедрили (за что разработчикам ОГРОМНОЕ спасибо!), а обработку исключений никак не получится?! Это чистый С++, подмножеством которого можно считать и MQL5 (это Вам ответ на то, что С++ и MQL это разные вещи, никак не связанные)
Проблема только в том, что разработчики не хотят ее дать нам, приводя пустые отговорки, что нам же хуже будет. Почему хуже - не говорят, я же скажу так: не хочешь - не используй исключения.
Вот же терминал написан на С++. И я не поверю, что при написании МТ5 разработчики не использовали исключения!!
ПОТОМУ ЧТО БЕЗ ИСКЛЮЧЕНИЙ НЕЛЬЗЯ НАПИСАТЬ ДЕЙСТВИТЕЛЬНО РОБАСТНЫЕ (НАДЕЖНЫЕ) ПРИЛОЖЕНИЯ!
Да ладно! ООП внедрили (за что разработчикам ОГРОМНОЕ спасибо!), а обработку исключений никак не получится?! Это чистый С++, подмножеством которого можно считать и MQL5 (это Вам ответ на то, что С++ и MQL это разные вещи, никак не связанные)
1. Да ладно! ООП и на половину не реализован от возможностей любого нормального языка. При этом до уровня о котором мы мечтаем ему еще расти и расти.
Где и кто утверждал что MQL даже в будущем получит функционал C++? О, извиняюсь, перефразирую - "..половину из функционала C++?".
Да и насколько нужна такая совместимость с C++ тоже вопрос хороший. Будут ли игра свечей стоить?
2. Поговорим о том зачем по сути нужны исключения в языке подобном MQL. Неужели с помощью MQL5 будем ракеты в космос запускать и управлять самолетами?
Вот я кстати доводы разработчиков понять могу (даже если они все карты не раскрывают), а вот доводы тех кто просит добавить исключения как-то не очень понимаю.
Да и серьезных аргументов я пока не видел. Есть хотя бы три причины по которым исключения жизненно необходимы и должны быть добавлены в любом случае (даже не считаясь с последствиями)?
Разве нет других способов решения этих проблем (пусть даже не таких элегантных и удобных)?
3. А почем тогда в MQL еще и многопоточноть не добавит (она тоже вроде в любом современном языке есть, по крайней мере в VB, C++ и Delphi есть)?
Почему другими вопросами не заняться (вместо того чтобы издеваться над компилятором)?
И наконец ПОЧЕМУ РАЗРАБОТЧИКИ ДОЛЖНЫ ЖЕРТВОВАТЬ БЕЗОПАСНОСТЬЮ В ДЛЯ РАСШИРЕНИЯ ФУНКЦИОНАЛА?
При этом замечу что правильно подобной возможностью будет пользоваться 5-10% от общего числа программистов, а проблем возникнуть может на порядок больше (остальным ведь не запретишь использовать функционал языка в соответствии с их пониманием и способностями)?
Ну, таким образом, мы приходим к пониманию того, что создать нормальную и современную среду для программера для разработки ПО разработчики MQL пока не в состоянии.
Это видно по тому количеству ошибок, которое изначально было в МТ5, и по отсутствию нормальной документации в момент запуска проекта, и по случаям, когда одно лечим, другое рушим. Т.е. полноценное тестирование не проводится.
Предоставлена библиотека классов, у членов которой иногда изменяется интерфейс, что влечет за собой переделку своих уже отлаженных кусков ПО. (Хотя я вообще не использую ее - пишу все свое)
Убогий редактор (хотя уважаемый Ренат не считает его таким) И огромное время, конца которому пока нет, вывода МТ5 в релиз.
Жизненно важные :) причины добавления исключений: весь программистский мир использует их, потому что это удобно и надежно.
Кстати, многопоточность - это тоже хорошо. И почему Вы считаете, что это снизит безопасность ПО? Туча программ пишется с использованием ее.
Причем, сначала Вы говорите, "Неужели с помощью MQL5 будем ракеты в космос запускать и управлять самолетами?" - т.е. надежность не сильно важна.
А потом "ПОЧЕМУ РАЗРАБОТЧИКИ ДОЛЖНЫ ЖЕРТВОВАТЬ БЕЗОПАСНОСТЬЮ В ДЛЯ РАСШИРЕНИЯ ФУНКЦИОНАЛА?" - т.е. безопасность все-таки важна.
Я бы поставил вопрос так: Почему разработчики не могут безопасно расширить функциональность? - ответом является первая строка этого моего поста.
Мы с Вами можем так вежливо переругиваться :) толку от этого не будет.
Мне уже давно понятно - надо писать длл-ки в С#. Но мне нравится MQL, вот и надеюсь, что разработчикам мои доводы станут понятными, ибо сказано - "Стучите, и откроется вам"
С уважением, falkov
Исключения, при грамотном их использовании, как-раз упрощают процесс разработки, ибо отделяют логику программной единицы от обработки возможных непредвиденных ситуаций, т.е. исключений.