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