Обратил внимание недавно - если определен массив из 10 элементов, к примеру, а мы пытаемся обратиться к 11-му - возвращается 0 и нет никаких сообщений об ошибке. Это потенциальная причина многочисленных багов... Может, ввести обработку ошибки в компилятор?
- Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее"
- Изучаем и пишем вместе на MQL5
- Разработчикам. Ошибка 4002 при работе функции ArrayInitialize. Блуждающие токи или что это такое?
откуда компилятор узнает про выход за рамки, если в качестве индекса может выступать вычисляемое выражение или размер массива может быть изменён? для ограничения индекса доступа используйте функции ArrayDimension(), ArrayRange()
при выходе за пределы массива гененрируется ошибка 4002
при выходе за пределы массива гененрируется ошибка 4002
при выходе за пределы массива гененрируется ошибка 4002
Как она генерится - эксепшеном или валидацией на входе функции-оператора?
То есть, более общий вопрос, надо ли обязательно проверять индекс ArrayRange'ем перед обращением к элементу массива или достаточно проверить GetLastError после. На эксепшн нарываться не хочется.
Жаль, что опять столь важная информация проскакивает всколзь на форуме и не отражена в документации.
эксепшена нет. ошибка просто записыватся после внутренней проверки. забирается функцией GetLastError. в данный момент идёт полная переработка хелпов, очень много информации уже добавлено
эксепшена нет. ошибка просто записыватся после внутренней проверки. забирается функцией GetLastError. в данный момент идёт полная переработка хелпов, очень много информации уже добавлено
Отлично, спасибо.
в данный момент идёт полная переработка хелпов, очень много информации уже добавлено
Замечательно! :)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь