Topic: Как понять что приводит к ошибке List index out of bounds(12)

На рабочей базе при открытии формы со списком проектов появляется сообщение об ошибке:
List index out of bounds (12)
...
Как узнать, выполнение какого кода приводит к ошибке?
Что означает цифра 12 в скобках?

Re: Как понять что приводит к ошибке List index out of bounds(12)

Ошибка означает, что программа пытается обратиться к элементу массива, которого нет, например у нас массив имеет 10 элементов (0..9), а мы попытаемся обратиться к 11 элементу.


Эта ошибка относится не только к массивам, но и ко всем другим объектам, которые имеют индексы, например при обращении к колонкам грида, когда их например 10, а пытаемся обратиться к 11 колонке (Form1.TableGrid1.Columns[10])


Можете приложить проект.

Dmitry.

Re: Как понять что приводит к ошибке List index out of bounds(12)

Приложить проект не могу. Он на MySql. Да и свои ошибки предпочитаю находить самостоятельно.
Вопрос то был про другое - что обозначает цифра в сообщении об ошибке и можно ли получить информацию о месте возникновения ошибки.
У меня очень большой проект и ошибка может оказаться в нескольких местах. Чтобы ускорить поиск было бы неплохо в сообщении об ошибке выводить номер строки в коде или компонент, который выдает ошибку.

Re: Как понять что приводит к ошибке List index out of bounds(12)

mikhail_a wrote:

Приложить проект не могу. Он на MySql. Да и свои ошибки предпочитаю находить самостоятельно.
Вопрос то был про другое - что обозначает цифра в сообщении об ошибке и можно ли получить информацию о месте возникновения ошибки.
У меня очень большой проект и ошибка может оказаться в нескольких местах. Чтобы ускорить поиск было бы неплохо в сообщении об ошибке выводить номер строки в коде или компонент, который выдает ошибку.

Я объяснил в предыдущем сообщении, что означает цифра. 12 - означает что ваш скрипт пытается обратиться к 12 элементу массива, но в тоже время в данном массиве нету 12 элемента, например потому что их всего 5.


К сожалению технически это довольно трудно реализовать, чтобы можно было вывести номер строки с ошибкой.



Т.к. ошибка появляется при открытии формы, ее следует искать в событии OnShow данной формы, также при открытии формы обновляется содержимое компонентов TableGrid, что вызывает в свою очередь событие OnChange данных компонентов. Можете попробовать закомментировать скрипт в данных событиях, чтобы определить, где именно кроется ошибка.

Dmitry.

Re: Как понять что приводит к ошибке List index out of bounds(12)

Умнику с ником vovka3003 скажу, что сообщение об ошибке  "выход за пределы массива" не является "максимумом".
Максимумом является сообщение "выход за пределы массива, который имеет имя такое то".
У меня реальное бизнес-приложение в 12000 строк кода.
Работают уже год в сетевом режиме десять пользователей.
Форма, которая стала выдавать ошибку имеет несколько таблиц с запросами, созданными вручную, а не конструктором.
Так что для поиска ошибки мне надо много строка закомментить, чтобы найти проблему.
Поэтому и вопрос появился - можно ли узнать имя массива, который ошибку вызывает.

6 (edited by sibprogsistem 2019-05-28 18:53:03)

Re: Как понять что приводит к ошибке List index out of bounds(12)

mikhail_a wrote:

Умнику с ником vovka3003 скажу, что сообщение об ошибке  "выход за пределы массива" не является "максимумом".
Максимумом является сообщение "выход за пределы массива, который имеет имя такое то".
У меня реальное бизнес-приложение в 12000 строк кода.
Работают уже год в сетевом режиме десять пользователей.
Форма, которая стала выдавать ошибку имеет несколько таблиц с запросами, созданными вручную, а не конструктором.
Так что для поиска ошибки мне надо много строка закомментить, чтобы найти проблему.
Поэтому и вопрос появился - можно ли узнать имя массива, который ошибку вызывает.

вы не комментировали Ваш код?
Тогда просто определите при каких действиях выходит ошибка... к примеру при клике на кнопку или при открытии формы.. переходите в реедактор скрипта по этому действию и смотрите на кого ссылается или может сразу там выполняется..
   
либо Вы просто забыли, что счет начинается с 0 а не с 1.. тоесть  в масиве вы создаете 12 колонок но их на сам деле 0-11 в итоге вы обращаетесь к колонке 0-12 (13) но ее не существует...
     
и еще у меня была ошибка с произвольной таблицей и программа выводила адрес ошибки ..  форма-таблица-колонка..

Re: Как понять что приводит к ошибке List index out of bounds(12)

Кому интересно:
ошибка List index out of bounds (12) возникала из-за того, что в скрипте устанавливалась ширина столбцов таблицы до того момента, как таблица формировалась SQL запросом.