Индексация массива

 
Обратил внимание недавно - если определен массив из 10 элементов, к примеру, а мы пытаемся обратиться к 11-му - возвращается 0 и нет никаких сообщений об ошибке. Это потенциальная причина многочисленных багов... Может, ввести обработку ошибки в компилятор?
 
откуда компилятор узнает про выход за рамки, если в качестве индекса может выступать вычисляемое выражение или размер массива может быть изменён? для ограничения индекса доступа используйте функции ArrayDimension(), ArrayRange()
при выходе за пределы массива гененрируется ошибка 4002
 
при выходе за пределы массива гененрируется ошибка 4002

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

Жаль, что опять столь важная информация проскакивает всколзь на форуме и не отражена в документации.
 
эксепшена нет. ошибка просто записыватся после внутренней проверки. забирается функцией GetLastError. в данный момент идёт полная переработка хелпов, очень много информации уже добавлено
 
эксепшена нет. ошибка просто записыватся после внутренней проверки. забирается функцией GetLastError. в данный момент идёт полная переработка хелпов, очень много информации уже добавлено
Отлично, спасибо.
 
в данный момент идёт полная переработка хелпов, очень много информации уже добавлено

Замечательно! :)
Причина обращения: