Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
0 / 2 / 0
Регистрация: 07.10.2014
Сообщений: 202

Как обработать исключение "Индекс массива оказался вне диапазона"?

03.12.2014, 21:53. Показов 6391. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int[] x = { 1, -2, 3, -4, 5, -6, 7, -8, 9 };
 
            bool T = true;
 
            for (int i = 0; i < x.Length-1; i++)
            {
                if (x[i] == 0)
                {
                    T = false;
                    break;
                }
                else if ((x[i] > 0 && x[i + 1] > 0) || (x[i] < 0 && x[i + 1] < 0)) 
                {
                    T = false;
                    break;
                }
            }
 
            Console.WriteLine("T={0}", T);
            Console.ReadLine();
        }
    }
}







try/catch
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.12.2014, 21:53
Ответы с готовыми решениями:

Индекс массива вне диапазона
Задача звучит так: Дан массив A размера N. Вывести вначале его элементы с нечетными номерами в порядке возрастания номеров, а затем...

Вызвано исключение "Векторный индекс вне диапазона"
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; #include &lt;cmath&gt; using namespace std; bool BinSearch(vector&lt;int&gt;...

Исключение "индекс находился вне границ массива" при заполнении массива значением
Всем доброго времени суток, делаю курсовую на языке программирования C#. Задача: В (0, 1)-матрице подсчитать число изолированных...

10
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.12.2014, 21:58
andrey1993, в чем, собственно, вопрос? Или эта такая игра, типа "Угадайка"?
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
03.12.2014, 22:01
Ну в try оборачиваешь сам код, в catch(Exception e) что будет в случае исключения.
C#
1
2
3
4
5
6
try{
Console.WriteLine("Hello World");
}
catch(Exception e){
Console.WriteLine(e);
}
При исключении выводит ошибку в консоль.
0
0 / 2 / 0
Регистрация: 07.10.2014
Сообщений: 202
03.12.2014, 22:20  [ТС]
Индекс массива оказался вне диапазона

неправильный формат числа

Добавлено через 11 минут
вот такие мне надо сделать исключение
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
03.12.2014, 22:27
C#
1
2
3
4
5
6
7
8
9
foreach(int i in x){
if (i == 0)
                {
                    T = false;
                    break;
                }
...
 
}
Попробуй так

Добавлено через 5 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class TestTryCatch
{
    static int GetInt(int[] array, int index)
    {
        try
        {
            return array[index];
        }
        catch (System.IndexOutOfRangeException e)  
        {
            System.Console.WriteLine(e.Message);
             
            throw new System.ArgumentOutOfRangeException("Индекс массива оказался вне диапазона.", e);
        }
    }
}
А понял вам что-то такое надо?
0
0 / 2 / 0
Регистрация: 07.10.2014
Сообщений: 202
03.12.2014, 22:36  [ТС]
для мое программы можно это сделать ,зараннее спасибо
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
03.12.2014, 22:43
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int[] x = { 1, -2, 3, -4, 5, -6, 7, -8, 9 };
 
            bool T = true;
 
            try{
             for (int i = 0; i < x.Length-1; i++)
            {
                if (x[i] == 0)
                {
                    T = false;
                    break;
                }
                else if ((x[i] > 0 && x[i + 1] > 0) || (x[i] < 0 && x[i + 1] < 0)) 
                {
                    T = false;
                    break;
                }
            }
 
            Console.WriteLine("T={0}", T);
            Console.ReadLine();
        }
    }
      catch (System.IndexOutOfRangeException e)  
        {
            System.Console.WriteLine(e.Message);
             
            throw new System.ArgumentOutOfRangeException("Индекс массива оказался вне диапазона.", e);
        }
}
0
0 / 2 / 0
Регистрация: 07.10.2014
Сообщений: 202
03.12.2014, 22:52  [ТС]
System.Console.WriteLine(e.Message);

throw new System.ArgumentOutOfRangeException("Инде кс массива оказался вне диапазона.", e);обьясните эти строчки .особенно вторую
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
03.12.2014, 23:02
Ну первая строчка выводит просто в консоль сообщение исключения можно написать там что угодно и оно будет выводиться при исключении, а вторая строка выбрасывает исключение с тем текстом который вам нужен.
Собственно можно использовать одно из двух.
0
0 / 2 / 0
Регистрация: 07.10.2014
Сообщений: 202
03.12.2014, 23:03  [ТС]
так можно?я вот только не пойму как индекс может оказаться вне диапозона
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
int[] x = { 1, -2, 3, -4, 5, -6, 7, -8, 9 };
 
            bool T = true;
 
            try
            {
                for (int i = 0; i < x.Length - 1; i++)
                {
                    if (x[i] == 0)
                    {
                        T = false;
                        break;
                    }
                    else if ((x[i] > 0 && x[i + 1] > 0) || (x[i] < 0 && x[i + 1] < 0))
                    {
                        T = false;
                        break;
                    }
                }
 
                Console.WriteLine("T={0}", T);
                Console.ReadLine();
            }
 
            catch (System.IndexOutOfRangeException )
            {
                Console.WriteLine("Индекс массива оказался вне диапазона.");
            }
        }
    }
}
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
03.12.2014, 23:05
Лучший ответ Сообщение было отмечено andrey1993 как решение

Решение

-1 убери от Length и узнаешь.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2014, 23:05
Помогаю со студенческими работами здесь

Индекс вне границ массива / Необработанное исключение типа "System.IndexOutOfRangeException"
Добрый день, в WPF совсем недавно, исходник одного проекта получил тоже недавно, но пока что не разобрался. И так, чтоб было ясно,...

Индекс вне диапазона
Доброго времени суток. Проблема в том, что вылетает ошибка индекс вне диапазона. Не могу понять почему. Игра в жанре TowerDefence....

Ошибка: Необработанное исключение типа "System.IndexOutOfRangeException". Индекс находился вне границ массива
Доброго времени суток. Помогите найти ошибку (Класс lin_uravn, строка 24) (Необработанное исключение типа...

Исключение "индекс находился вне границ массива" при попытке проверить строку string
Помогите, пожалуйста. Проблема возникает во всех случаях (строки 21, 25, 34, 36 и 38). string Strings =...

Исключение значений вне диапазона
Каким образом можно исключить (удалить) из столбца данных значения вне указанного диапазона? Помогите, пожалуйста.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru