| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > фантомная ошибка |
| Автор: Rays 6.10.2012, 23:49 |
| Доброго времени суток! Название темы, канеш, должно отражать суть и все-такое, но я, честно говоря, хз как такое назвать) В общем, долго бился над проблемой, но у меня уже все варианты иссякли. Неожиданно, на ровном месте прога стала вылетать с ошибкой: "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции. Имя параметра: index" Ну черт его знает, что могло повлечь подобную реакцию. Откатил все изменения, внесенные за вечер. К слову сказать, ничего координально не менял, так, косметические изменения. Перестала так же работать резервная копия этой проги. Причем проект комплится, он на стадии выполнения вылетает. При чем вылетает из разных мест. Другие проги на шарпе компилятся и работают. В среде вроде ничего не менял. А, кстати, пишу на visual studio 2010. Раньше проект был в среде vs2008. Может что-нить из-за фреймворка? Теперь самое интересное. Спустя какое-то время начал грешить на динамические массивы. Ну мало ли что. Заменил все на обычные. Откомпилил, запускаю - не работает. Отменяю все изменения, компилю и, о чудо, получаю результат! Слегка прифигел. Подобную шойтан-работу я видел только на асме. Выхожу из программы, компилю проект снова, запускаю - ошибка! Епт... Повторяю действия с динамическими массивами, откат изменений... работает. Причем только первый запуск после отката. Затем - снова вылетает исключение. Фу-х. Ну да, описание получилось из разряда "я ничего не трогало, оно само все сломалось", но я хз, что еще добавить или как это описать)) Ах да, чуть не забыл, в таких случаях еще принято говорить, что писать на шарпе только учусь бла-бла-бла, сильно не ругайте если где ступил. Есть какие-нибудь идеи? Может что посоветуете? |
| Автор: Cheloveck 6.10.2012, 23:55 |
| Break on exception спасёт отца русской демократии (Ctrl+Alt+E, кажется). Ну и Call Stack никто не отменял. PS Хрустальный шар в ремонте, так бы я решил твою проблему. |
| Автор: Gluttton 7.10.2012, 11:34 |
| Ну отладка же, в первую очередь и как ва риант я бы посоветовал профилирование (добавить обогащенный вывод логов) иногда это лучше (во всяком случае удобнее) чем отладка. P.S. По сути ответить нечего. |
| Автор: Rays 7.10.2012, 18:52 |
| Кароч отловил я эти исключения. Таки динамические массивы были во всем виноваты. Ну и мое неумение ими пользоваться. Cheloveck, Gluttton спасибо что ответили) |
| Автор: RoboTown 21.10.2012, 04:00 | ||
Мне кажется все-таки второе ;) А по теме: 1. Не ограничивайтесь только названием ошибки. VS покажет полную информацию - стектрейс, строчку кода, состояние переменных 2. Загуглив название ошибки в интернете очень часто можно найти много всего интересного 3. Учитесь пользоваться отладкой, это очень важный навык |