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

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

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

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

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

textual
Листинг программы
namespace CustomIndicatorSet
{
    using System;
    using System.ComponentModel;
    using ATAS.Indicators;
    using System.Collections.Generic;
 
    [DisplayName("POC_SMA")]
    [Description("Пользовательская скользящая средняя по ценам POC")]
    public class SMA : Indicator
    {
        private int _period;
        public int Period
        {
            get { return _period; }
            set
            {
                _period = value;
                RecalculateValues();
            }
        }
 
        public SMA()
        {
            Period = 10;
        }
        protected override void OnCalculate(int bar, decimal value)
        {
            // Определяем ценовой уровень с максимальным объемом в баре
            var candle = GetCandle(bar);
            var price = (int)candle.MaxVolumePriceInfo.Price;
            // Организуем список и записываем в него полученное значение на последнее место
            List<int> numbers = new List<int>();
            numbers.Add(price);
            // Рассчитываю start
                        var start = Math.Max(0, bar - Period + 1);
            // Считаю количество баров, по которому буду усреднять
                        var count = Math.Min(bar + 1, Period);
            
                        var sum = 0;
 
                        for (var i = start; i < start + count; i++)
            // Сумма для расчета средней 
            {
                sum += numbers[i];// Я так полагаю, что проверку нужно где-то здесь....
            }
                       
            this[bar] = sum / count;// Или здесь...
        }
    }

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


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

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

13   голосов , оценка 3.923 из 5
Похожие ответы