Обработка исключения System.IndexOutOfRangeException - C#

Узнай цену своей работы

Формулировка задачи:

Добрый вечер) Возникла проблема с исключением. По смыслу - с клавиатуры вводится строка, которую я преобразую в массив символов и потом каждый элемент проверяю, исходя из своих соображений. Так вот. Есть вот такой кусочек кода:
Листинг программы
  1. else if (str_fix[7] != 59)
  2. {
  3. Console.WriteLine("Ошибка пунктуации!");
  4. }
НО! Далее мне нужно предусмотреть ситуацию, когда пользователь этот элемент массива вообще не ввел, т.к. он является последним. Т.е. возникает исключение System.IndexOutOfRangeException. Естественно, идет обращение к несуществующему элементу. Так вот - нужно его "отловить" и вывести в консоль сообщение "блаблабла". Заранее благодарна.

Решение задачи: «Обработка исключения System.IndexOutOfRangeException»

textual
Листинг программы
  1. namespace CustomIndicatorSet
  2. {
  3.     using System;
  4.     using System.ComponentModel;
  5.     using ATAS.Indicators;
  6.     using System.Collections.Generic;
  7.  
  8.     [DisplayName("POC_SMA")]
  9.     [Description("Пользовательская скользящая средняя по ценам POC")]
  10.     public class SMA : Indicator
  11.     {
  12.         private int _period;
  13.         public int Period
  14.         {
  15.             get { return _period; }
  16.             set
  17.             {
  18.                 _period = value;
  19.                 RecalculateValues();
  20.             }
  21.         }
  22.  
  23.         public SMA()
  24.         {
  25.             Period = 10;
  26.         }
  27.         protected override void OnCalculate(int bar, decimal value)
  28.         {
  29.             // Определяем ценовой уровень с максимальным объемом в баре
  30.             var candle = GetCandle(bar);
  31.             var price = (int)candle.MaxVolumePriceInfo.Price;
  32.             // Организуем список и записываем в него полученное значение на последнее место
  33.             List<int> numbers = new List<int>();
  34.             numbers.Add(price);
  35.             // Рассчитываю start
  36.                         var start = Math.Max(0, bar - Period + 1);
  37.             // Считаю количество баров, по которому буду усреднять
  38.                         var count = Math.Min(bar + 1, Period);
  39.            
  40.                         var sum = 0;
  41.  
  42.                         for (var i = start; i < start + count; i++)
  43.             // Сумма для расчета средней
  44.             {
  45.                 sum += numbers[i];// Я так полагаю, что проверку нужно где-то здесь....
  46.             }
  47.                        
  48.             this[bar] = sum / count;// Или здесь...
  49.         }
  50.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы