Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
На MQL5.community есть возможность хранить исходные коды в MQL5 Storage. Попробуй сам!
Forex Trader
114375
Forex Trader 2005.11.24 13:24 
Обратил внимание недавно - если определен массив из 10 элементов, к примеру, а мы пытаемся обратиться к 11-му - возвращается 0 и нет никаких сообщений об ошибке. Это потенциальная причина многочисленных багов... Может, ввести обработку ошибки в компилятор?
Forex Trader
114375
Forex Trader 2005.11.24 14:32  
откуда компилятор узнает про выход за рамки, если в качестве индекса может выступать вычисляемое выражение или размер массива может быть изменён? для ограничения индекса доступа используйте функции ArrayDimension(), ArrayRange()
при выходе за пределы массива гененрируется ошибка 4002
Forex Trader
114375
Forex Trader 2005.11.24 15:11  
при выходе за пределы массива гененрируется ошибка 4002

Как она генерится - эксепшеном или валидацией на входе функции-оператора?
То есть, более общий вопрос, надо ли обязательно проверять индекс ArrayRange'ем перед обращением к элементу массива или достаточно проверить GetLastError после. На эксепшн нарываться не хочется.

Жаль, что опять столь важная информация проскакивает всколзь на форуме и не отражена в документации.
Forex Trader
114375
Forex Trader 2005.11.24 15:27  
эксепшена нет. ошибка просто записыватся после внутренней проверки. забирается функцией GetLastError. в данный момент идёт полная переработка хелпов, очень много информации уже добавлено
Forex Trader
114375
Forex Trader 2005.11.24 18:06  
эксепшена нет. ошибка просто записыватся после внутренней проверки. забирается функцией GetLastError. в данный момент идёт полная переработка хелпов, очень много информации уже добавлено
Отлично, спасибо.
Forex Trader
114375
Forex Trader 2005.11.24 18:46  
в данный момент идёт полная переработка хелпов, очень много информации уже добавлено

Замечательно! :)
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий