C#   Уроки программирования с нуля. Си-шарп для чайников   C#

Здравствуйте, гость!
Вход
Регистрация


Обработка исключений в Си-шарп. Оператор try-catch
В предыдущих уроках, в некоторых программах мы не учитывали непредвиденные ситуации, которые могут приводить к ошибкам. Например, когда нам необходимо было ввести число. Если вместо числа мы ввели бы строку, то при конвертации этой строки в численный тип программа бы аварийно завершила работу, и мы получили бы ошибку.

Такие ошибки и другие непредвиденные ситуации в Си-шарп называются исключениями.

Обработка исключений – это описание реакции программы на подобные события (исключения) во время выполнения программы. Реакцией программы может быть корректное завершение работы программы, вывод информации об ошибке и запрос повторения действия (при вводе данных).

Примерами исключений может быть:

- деление на ноль;
- конвертация некорректных данных из одного типа в другой;
- попытка открыть файл, которого не существует;
- доступ к элементу вне рамок массива;
- исчерпывание памяти программы;
- другое.

Для обработки исключений в Си-шарп используется оператор try-catch. Он имеет следующую структуру:

try
{
  //блок кода, в котором возможно исключение
}
catch ([тип исключения] [имя])
{
  //блок кода – обработка исключения
}

Работает это все очень просто. Выполняется код в блоке try, и, если в нем происходит исключение типа, соответствующего типу, указанному в catch, то управление передается блоку catch. При этом, весь оставшийся код от момента выбрасывания исключения до конца блока try не будет выполнен. После выполнения блока catch, оператор try-catch завершает работу.

Указывать имя исключения не обязательно. Исключение представляет собою объект, и к нему мы имеем доступ через это имя. С этого объекта мы можем получить, например, стандартное сообщение об ошибке (Message), или трассировку стека (StackTrace), которая поможет узнать место возникновения ошибки. В этом объекте хранится детальная информации об исключении.

Если тип выброшенного исключения не будет соответствовать типу, указанному в catch – исключение не обработается, и программа завершит работу аварийно.

Ниже приведен пример программы, в которой используется обработка исключения некорректного формата данных:

static void Main(string[] args)
{
   string result = "";
   Console.WriteLine("Введите число:");
   try
   {
     int a = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число
     result = "Вы ввели число " + a;
   }
   catch (FormatException)
   {
     result = "Ошибка. Вы ввели не число";
   }
   Console.WriteLine(result);
   Console.ReadLine();
}

Типы исключений

Ниже приведены некоторые из часто встречаемых типов исключений.

Exception – базовый тип всех исключений. Блок catch, в котором указан тип Exception будет «ловить» все исключения.
FormatException – некорректный формат операнда или аргумента (при передаче в метод).
NullReferenceException - В экземпляре объекта не задана ссылка на объект, объект не создан
IndexOutOfRangeException – индекс вне рамок коллекции
FileNotFoundException – файл не найден.
DivideByZeroException – деление на ноль

Несколько блоков catch

Одному блоку try может соответствовать несколько блоков catch:

try
{
   //блок1
}
catch (FormatException)
{
  //блок-обработка исключения 1
}
catch (FileNotFoundException)
{
  //блок-обработка исключения 2
}

В зависимости от того или другого типа исключения в блоке try, выполнение будет передано соответствующему блоку catch.

Блок finally

Оператор try-catch также может содержать блок finally. Особенность блока finally в том, что код внутри этого блока выполнится в любом случае, в независимости от того, было ли исключение или нет.

try
{
   //блок1
}
catch (Exception)
{
   //обработка исключения
}
finally
{
  //блок кода, который выполнится обязательно
}

Выполнение кода программы в блоке finally происходит в последнюю очередь. Сначала try затем finally или catch-finally (если было исключение).

Обычно, он используется для освобождения ресурсов. Классическим примером использования блока finally является закрытие файла.

Зачем блок finally?

Очень часто можно услышать вопрос, для чего нужен этот блок? Ведь, кажется, можно освободить ресурсы просто после оператора try-catch, без использования finally. А ответ очень прост. Finally гарантирует выполнение кода, несмотря ни на что. Даже если в блоках try или catch будет происходить выход из метода с помощью оператора return – finally выполнится.

Операторы try-catch также могут быть вложенными. Внутри блока try либо catch может быть еще один try-catch.

Обработка исключений, в первую очередь, нам понадобится при работе с файлами. Работе с файлами будет посвящен следующий урок.

Домашнее задание

Есть массив целых чисел размером 10. С клавиатуры вводится два числа - порядковые номера элементов массива, которые необходимо суммировать. Например, если ввели 3 и 5 - суммируются 3-й и 5-й элементы. Нужно предусмотреть случаи, когда были введены не числа, и когда одно из чисел, или оба больше размера массива.
Понравилась статья? Подпишись на рассылку и узнавай первым о новых уроках по почте!


Поделиться с друзьями:
10 июн 2013 02:38
AillelfBycle 19 авг 2017 00:02
By dealing together, two of you can address problems of self-esteem and mutual trust. Use these circumspectly however, while they may lower blood sugar levels, that's an inadequate effect in men whose blood sugar levels are properly balanced.

Avia777pes 16 авг 2017 16:07
<b>Авиабилеты по РУ за 60 процентов от цены кассы.</b> по МИРУ - 50%| <b>Телеграмм @AviaRussia</b> только этот, другие не используем.

Надежно. Выгодно. Без слётов. И БЕЗ каких-либо проблем.

Оплата:
ЯндексДеньги, Webmoney (профессиональные счета)
Рады сотрудничеству!
________

авиабилеты озон купить билеты дешево
самые недорогие авиабилеты
авиабилеты купить билеты +на самолет онлайн дешево
авиабилеты онлайн дешево украина
авиакомпания s7 купить дешевые авиабилеты

CurtisTrody 16 авг 2017 07:59
Мы ценим ваше время и делим с вами общие цели. Ваши продажи для нас главный приоритет.
оптимизация сайтов в сети SEO2000

оращайтесь договримся есть примеры работ логин скайпа SEO2000

Avito777Drync 15 авг 2017 22:02
<b>Пополение баланса Авито (Avito) за 50%</b> | <b>Телеграмм @a1garant</b>

<b>Приветствую вас, дорогие друзья!</b>

Рады предоставить Всем вам сервис по пополнению баланса на действующие активные аккаунты Avito (а также, абсолютно новые). Если Вам нужны конкретные балансы - пишите, будем решать. Потратить можно на турбо продажи, любые платные услуги Авито (Avito).

<b>Аккаунты не Брут. Живут долго.</b>

Процент пополнения в нашу сторону и стоимость готовых аккаунтов: <b>50% от баланса на аккаунте.</b>
Если необходим залив на ваш аккаунт, в этом случае требуются логин и пароль Вашего акка для доступа к форме оплаты, пополнения баланса.
Для постоянных клиентов гибкая система бонусов и скидок!
Гарантия:

<b>И, конечно же ничто не укрепляет доверие, как - Постоплата!!!</b> Вперед денег не просим... <b>А также, гасим Штрафы ГИБДД за 65% ...</b>

Оплата:
ЯндексДеньги, Webmoney (профессиональные счета)
Рады сотрудничеству!

<b>канал Телеграмм @t.me/avito50 </b>
________

авито свежие
подавать объявление +на авито бесплатно
скидка +на турбо пакеты авито
авито +с пробегом
пакет объявлений +на авито

Leeannneugs 11 авг 2017 20:18
Нейросетевое обновление "XRumer 16.0 + XEvil":
обход бесплатно и быстро капч Google, Yandex, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов капч,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы - ищите в YouTube "XEvil: new OCR - captcha solver"


XRumer201708c

Leeannneugs 11 авг 2017 00:32
Революционное обновление "XRumer 16.0 + XEvil":
обход бесплатно и быстро капч Гугла, Яндекса, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов капч,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы? ищите в YouTube "XEvil: new OCR - captcha solver"


XRumer201708c

Leeannneugs 10 авг 2017 19:23
Революционное обновление "XRumer 16.0 + XEvil":
решение бесплатно и быстро captchas Google, Яндекса, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов капчи,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы - ищите в YouTube "XEvil: new OCR - captcha solver"


XRumer201708c

Carolynnup 07 авг 2017 08:27
Революционное обновление "XRumer 16.0 + XEvil 3.0":
взлом бесплатно и быстро captcha Гугла, Yandex, Фэйсбука, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов капчи,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно - см. в Ютубе "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 07 авг 2017 02:33
Революционное обновление "XRumer 16.0 + XEvil":
автораспознавание бесплатно и быстро captchas Гугла, Яндекса, Facebook, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов captchas,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно? ищите в Ютубе "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 06 авг 2017 20:57
Принципиально новое обновление "XRumer 16.0 + XEvil 3.0":
обход бесплатно и быстро captchas Гугла, Yandex, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов captchas,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы? см. в YouTube "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 06 авг 2017 15:32
Принципиально новое обновление "XRumer 16.0 + XEvil":
решение бесплатно и быстро капч Гугла, Яндекса, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов captcha,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы? см. в Ютубе "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 06 авг 2017 10:20
Нейросетевое обновление "XRumer 16.0 + XEvil 3.0":
распознавание бесплатно и быстро капчи Google, Яндекса, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов captcha,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно - см. в YouTube "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 06 авг 2017 05:00
Революционное обновление "XRumer 16.0 + XEvil 3.0":
обход бесплатно и быстро captchas Гугла, Yandex, Фэйсбука, ВКонтакте, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов captcha,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы? ищите в YouTube "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 05 авг 2017 23:29
Нейросетевое обновление "XRumer 16.0 + XEvil":
обход бесплатно и быстро капч Google, Яндекса, Фэйсбука, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов captchas,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы - см. в Ютубе "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 05 авг 2017 18:09
Нейросетевое обновление "XRumer 16.0 + XEvil":
решение бесплатно и быстро капчи Гугла, Yandex, Facebook, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов капч,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы - ищите в YouTube "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 05 авг 2017 12:48
Нейросетевое обновление "XRumer 16.0 + XEvil":
автораспознавание бесплатно и быстро капчи Google, Yandex, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов капч,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно - ищите в Ютубе "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 05 авг 2017 07:29
Нейросетевое обновление "XRumer 16.0 + XEvil 3.0":
решение бесплатно и быстро капч Google, Yandex, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов капч,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно? см. в YouTube "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 05 авг 2017 02:06
Нейросетевое обновление "XRumer 16.0 + XEvil":
распознавание бесплатно и быстро капчи Google, Яндекса, Facebook, ВКонтакте, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов капч,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно - см. в YouTube "XEvil: new OCR - captcha solver"


XRumer201708

Carolynnup 04 авг 2017 20:57
Революционное обновление "XRumer 16.0 + XEvil 3.0":
распознавание бесплатно и быстро капч Гугла, Yandex, Фэйсбука, ВКонтакте, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов капчи,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы - см. в YouTube "XEvil: new OCR - captcha solver"


XRumer201708

MatthewEi 04 авг 2017 16:05
Отличный хостинг изображений и фотографий!
viewimage.ru

Davidspito 28 июл 2017 23:42
VasTutNet точка ru удалим негативные отзывы о Вас,разместим положительные,Спецалист по удалению плохой негативной информации в сетиудаление негативных отзывов Удалим всю негативную информацию ,разместим положительные отзывы.Привлечение трафика аналог яндекс директа и гугла Агентство репутации Вастутнет VasTutNet точка ру!

FlossieUlcef 26 июл 2017 11:34
Революционное обновление "XRumer 16.0 + XEvil":
взлом бесплатно и быстро капч Гугла, Яндекса, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов капч,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно - ищите в YouTube "XEvil: new OCR - captcha solver"


XRumer20170725

EssayPaper 26 июл 2017 11:27
EssayErudite.com is the web's leading provider of quality and professional academic writing.
When it comes to essay writing, an in-depth research is a big deal. Our experienced writers are professional in many fields of knowledge so that they can assist you with virtually any academic task. We deliver papers of different types: essays, theses, book reviews, case studies, etc.
We have thousands of satisfied customers who have already recommended us to their friends. Why not follow their example and place your order today?

FlossieUlcef 26 июл 2017 06:16
Революционное обновление "XRumer 16.0 + XEvil":
распознавание бесплатно и быстро captchas Google, Yandex, Фэйсбука, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов captchas,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы? см. в Ютубе "XEvil: new OCR - captcha solver"


XRumer20170725

FlossieUlcef 26 июл 2017 00:47
Революционное обновление "XRumer 16.0 + XEvil 3.0":
решение бесплатно и быстро captcha Гугла, Yandex, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов captcha,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы? ищите в Ютубе "XEvil: new OCR - captcha solver"


XRumer20170725

FlossieUlcef 25 июл 2017 19:23
Принципиально новое обновление "XRumer 16.0 + XEvil 3.0":
решение бесплатно и быстро капч Гугла, Yandex, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов captcha,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы? ищите в YouTube "XEvil: new OCR - captcha solver"


XRumer20170725

Arlenegroog 23 июл 2017 00:21
Революционное обновление "XRumer 16.0 + XEvil":
обход бесплатно и быстро капч Google, Яндекса, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов captchas,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы - ищите в Ютубе "XEvil: new OCR - captcha solver"


XRumer20170721

Arlenegroog 22 июл 2017 19:04
Революционное обновление "XRumer 16.0 + XEvil":
распознавание бесплатно и быстро captcha Гугла, Яндекса, Facebook, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов капчи,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно? см. в YouTube "XEvil: new OCR - captcha solver"


XRumer20170721

Arlenegroog 22 июл 2017 13:44
Нейросетевое обновление "XRumer 16.0 + XEvil":
распознавание бесплатно и быстро капчи Google, Yandex, Facebook, ВКонтакте, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов captchas,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы - см. в Ютубе "XEvil: new OCR - captcha solver"


XRumer20170721

Arlenegroog 22 июл 2017 04:24
Революционное обновление "XRumer 16.0 + XEvil 3.0":
обход бесплатно и быстро captchas Гугла, Yandex, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов captcha,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно - см. в Ютубе "XEvil: new OCR - captcha solver"


XRumer20170721

lolaUnfoxme 21 июл 2017 21:26
Тут посмотрела 3 и 4 серию, ЭМОЦИЙ ВАГОН ПРОСТО.

x0.no/1d9go

p.s Жаль 5 серии еще нет обещали завтра!

Dorothylof 19 июл 2017 01:54
Нейросетевое обновление "XRumer 16.0 + XEvil":
распознавание бесплатно и быстро captchas Google, Яндекса, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов captcha,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно? см. в YouTube "XEvil: new OCR - captcha solver"


XRumer20170718

palinacag 18 июл 2017 18:21
Пройдите 1 регистрацию, сделайте 2 действия
и получайте от 8950 рублей каждые сутки в автоматическом режиме.

Мы гарантируем:
- Первый заработок в течении 60 минут.
- Стабильный доход 24 часа в сутки.
- Поступление денег без задержек.
- Для России, стран СНГ и Европы.
- Без вложений и установки ПО.
- Специально для новичков и людей без опыта.

Более подробная информация на нашем сайте. ( prostozarplata.tk )

Dorothylof 17 июл 2017 22:25
Революционное обновление "XRumer 16.0 + XEvil":
распознавание бесплатно и быстро captcha Гугла, Яндекса, Фэйсбука, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов капчи,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Интересно? ищите в Ютубе "XEvil: new OCR - captcha solver"


XRumer20170717

Dorislet 17 июл 2017 12:35
Принципиально новое обновление "XRumer 16.0 + XEvil":
распознавание бесплатно и быстро капчи Гугла, Yandex, Facebook, Vkontakte, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других видов captchas,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы - ищите в Ютубе "XEvil: new OCR - captcha solver"


XRumer201707

Dorislet 15 июл 2017 02:38
Революционное обновление "XRumer 16.0 + XEvil":
решение бесплатно и быстро captcha Гугла, Яндекса, Facebook, VK, Bing, Hotmail, Mail.Ru, SolveMedia,
а также свыше 8400 других типов капчи,
с высокой скоростью - 100 изображений в секунду, и точностью - 80%..100%.
В XEvil 3.0 реализовано подключение любых SEO/SMM программ - XRumer, GSA, ZennoPoster, VKBot, A-Parser,
и многих других. Готовится абсолютно бесплатная демо-версия. Заинтересованы? ищите в YouTube "XEvil: new OCR - captcha solver"


XRumer201707

valinacag 26 июн 2017 00:54
Стабильная работа с обучением, оплата ежедневно!

Вы работаете дома! Полностью честно и прозрачно;
Доступно для всех - неважно кто вы и какой у вас опыт работы в интернете!
Вы будете зарабатывать: свыше четырёх тысяч рублей в день!
Сложность: Несложно!
Оплата: - уже на следующий деньги у вас на счету!

Более подробная информация на нашем сайте. > realno-money.tk < Скопируйте и вставьте в адресную строку Вашего браузера.

Александр 05 апр 2017 07:53

using System;
//Xmarin Studio
namespace Lesson_10TryCatch
{
class MainClass
{

public static void Main(string[] args)
{
string result;

try
{

int sum;
int[] array = {1, 3, 4, 5, 7, 8, 1, 2, 3, 6};
for (int i = 0; i < array.Length; i++)
{
int chislo;
chislo = array[i];
Console.WriteLine(chislo);

}
Console.WriteLine("Введите первое число");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второе число");
int b = Convert.ToInt32(Console.ReadLine());
sum = array[a] + array[b];
Console.WriteLine(sum);

}
catch (FormatException)
{
result = "Вы ввели не число";
Console.WriteLine(result);
}
catch (IndexOutOfRangeException)
{
result = "Вы вышли за рамки массива";
Console.WriteLine(result);
}
Console.ReadKey();
}
}
}

igorue190 20 мар 2017 13:35
class Program
{
static void Main(string[] args)
{
int a, b ,sum;
int[] mas = new int[10];
for (int i = 0; i < mas.Length; i++)
{
mas[i] = i;
}
try
{
Console.Write("Enter first number: ");
a = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter second number: ");
b = Convert.ToInt32(Console.ReadLine());
sum = mas[a] + mas[b];
Console.WriteLine(sum);
}
catch (FormatException)
{
Console.WriteLine("Exception Format.");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Index Out Of Range Exception.");
}
Console.ReadKey();
}
}

Serj190492 17 мар 2017 06:14

static void Main(string[] args)
{
int[] array = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

int go = 1;

while (go == 1)
{
try
{
Console.WriteLine("Введите первый порядковый номер:");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второй порядковый номер:");
int b = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Сумма элементов с порядковыми номерами " + a + " и " + b + " = " + (array[a] + array[b]));
go = 0;
}
catch (FormatException)
{
Console.WriteLine("Вы ввели не число!");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Нужно ввести число от 0 до 9!");
}
}
//Console.WriteLine(array[5]);
Console.ReadKey();

lax33 14 мар 2017 13:16

try
{

int[] massiv = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
Console.Write("Введите номер элемента массива от 0 до 9 -");
int i = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите второй номер элемента массива от 0 до 9 -");
int j = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Сумма элементов массива ровна - {0}",massiv[i] + massiv[j]);

}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Введеное число превышает размер массива");

}
catch (FormatException)
{
Console.WriteLine("Введено не число");

}

Console.ReadKey();

meii 13 мар 2017 21:46
help

wAsync 11 мар 2017 00:21
? Huntsman Knife | Scorched___4000___30,2893___sk///

wAsync 10 мар 2017 08:00
AWP | Asiimov___2500___32,81376___sk///

wAsync 04 мар 2017 22:06
AK-47 | Jaguar___3000___31,09784___sk///

wAsync 04 мар 2017 14:35
AWP | Hyper Beast___3199___16,62757___sk///

Galan 03 мар 2017 18:30
galan

dima1009 01 мар 2017 18:26
exception(7);

wAsync 01 мар 2017 16:58
AK-47 | Case Hardened___2450___30,88858___sk///

wAsync 01 мар 2017 15:56
M4A4 | X-Ray___620___20,1031___sk///

wAsync 01 мар 2017 08:53
StatTrak™ AK-47 | Frontside Misty___2193___20,94448___sk///

wAsync 01 мар 2017 08:28
sko_sy

Valera Gudilin 28 фев 2017 12:25
static void Main(string[] args)
{
try
{
int[] array = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int indexA = int.Parse(Console.ReadLine());
int indexB = int.Parse(Console.ReadLine());
int result = array[indexA] + array[indexB];
Console.WriteLine("Result is: " + result);
}
catch(FormatException)
{
Console.WriteLine("Not digit!");
}
catch(IndexOutOfRangeException)
{
Console.WriteLine("Out of range!");
}
}

mihpir889 07 янв 2017 11:24

int[] numbers = { 0, 12, 24, 36, 48, 50, 62, 74, 86, 98 };
try
{
Console.WriteLine("Введите порядковый номер элемента массива первого числа");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите порядковый номер элемента массива второго числа");
int b = Convert.ToInt32(Console.ReadLine());
int sum = numbers[a] + numbers[b];
Console.WriteLine(sum);
}

catch (FormatException)
{
Console.WriteLine("были введены не числа");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("одно из чисел, или оба больше размера массива");
}
Console.ReadKey();


Паша 22 ноя 2016 15:41


static void Main(string[] args)
{
try
{
int[] number = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Console.WriteLine("Введите первое число!");
int fstN = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второе число!");
int scdN = Convert.ToInt32(Console.ReadLine());
int result = SumNumber(number, fstN, scdN);
Console.WriteLine(result);
}

catch(FormatException)
{
Console.WriteLine("Вводите только числа!");
}

catch (IndexOutOfRangeException)
{
Console.WriteLine("Введенное число выходит за диапазон массива!");
}
finally
{
Console.WriteLine("Уот так Уот! __(O_O)__");
}

Console.ReadKey();
}

public static int SumNumber(int[] massive, int number_1, int number_2)
{
int sumar = massive[number_1] + massive[number_2];
return sumar;
}




pirs 17 ноя 2016 20:41
int[] arr =new int[10] {0,1,2,3,4,5,6,7,8,9};
for (int i = 0; i < arr.Length; i++)
{ arr[i] = i; Console.Write(i);}
int arrnumber1 arrnumber2;
string result = "";

try
{
Console.WriteLine("Введите первое число:");
arrnumber1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второе число:");
arrnumber2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Сумма двух чисел равна:");
Console.WriteLine(arr[arrnumber1] + arr[arrnumber2]);
}
catch (FormatException)
{
result = "Ошибка! Вы ввели не число";
}
catch (IndexOutOfRangeException)
{
result = "Одно из введенных чисел вне рамок массива";
}
Console.WriteLine(result);
Console.ReadKey();

Влад 03 окт 2016 12:44

static void Main(string[] args)
{
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Console.WriteLine("Введите индексы суммируемых чисел ");
try
{
int sum = array[Convert.ToInt32(Console.ReadLine())] + array[Convert.ToInt32(Console.ReadLine())];
Console.WriteLine(sum);
}
catch(FormatException)
{
Console.WriteLine("Вы ввели не числовое значение");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Out of range");
}
Console.ReadKey();

}

Юрец 29 сен 2016 00:54

namespace tryCathProg
{
class Program
{
//проверка try catch
static void Main(string[] args)
{
int razmerMass, first, second;
int num = 1;
//указываем размер массива
Console.WriteLine("Введите размермассива");
razmerMass = Int32.Parse(Console.ReadLine());
//готовим массив
int[] mas = new int[razmerMass];
Random r = new Random();

//заполняем массив случайными числами
for(int i = 0; i<mas.Length; i++)
{
int ran = r.Next(50);
mas[i] = ran;
}
//выводим на экран заполненный массив
foreach (int vivodMass in mas)
{
Console.WriteLine("{0} - й элемент массива равен {1}", num, vivodMass);
num++;
}

//указываем под какими индексами сложить числа
Console.WriteLine("Какие элементы сложить ?");
try
{
first = Int32.Parse(Console.ReadLine());
Console.WriteLine("И");
second = Int32.Parse(Console.ReadLine());
Console.WriteLine("Сумма двух элементов равна {0}",mas[first-1]+mas[second-1]);
}

catch(FormatException)//сообщение если пытаемся ввести нечисла
{
Console.WriteLine("Вводить нужно числа");
}
catch(IndexOutOfRangeException)// сообщерние если указываем индекс больше чем размер массива
{
Console.WriteLine("Порядковый номер элемента не должен быть больше {0}", mas.Length);
}

Console.ReadKey();
}
}
}

sv_klim_1 25 сен 2016 23:37
namespace try_catch
{
class Program
{
static void Main(string[] args)
{
Random rand = new Random();
int[] mass = new int[10];
for (int i = 0; i < 10; i++) Console.Write((mass[i] = rand.Next(-10, 11)) + " ");

Console.Write("Input first and second index: ");
try
{
Console.WriteLine("Result of add = " + (mass[Convert.ToInt32(Console.ReadLine())-1] + mass[Convert.ToInt32(Console.ReadLine())-1]));
}catch (FormatException)
{
Console.WriteLine("Invaild format!");
}catch (IndexOutOfRangeException)
{
Console.WriteLine("Out of range!");
}finally
{
Console.WriteLine("Thank you for this lesson))");
}

}
}
}

Булат 07 сен 2016 11:24
class Program
{
public static int InputInt(string str, int[] array)
{
int proverka = 0;
int a=0;
do
{
try
{
Console.WriteLine(str);
a = Convert.ToInt32(Console.ReadLine());
array[a] = array[a];
proverka = 0;
}
catch (FormatException)
{

Console.WriteLine("Вы ввели не число");
proverka = -1;
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Вы ввели номер, который выходит за пределы массива");
proverka = -1;
}
} while (proverka != 0);
return a;
}

static void Main(string[] args)
{
int[] mas = new int[10];
Random rnd = new Random();
for (int i = 0; i < mas.Length; i++)
mas[i] = rnd.Next(0, 10);
int a = InputInt("Введите номер первого числа", mas);
int b = InputInt("Введите номер второго числа", mas);
Console.WriteLine(mas[a] + mas[b]);
Console.ReadKey();
}
}

Лорд Вашингтон 05 июл 2016 16:58
int[] array = {1,4,5,6,7,8,9,2,4,8,5};
string result = "";
int a,b;
Console.Write("Введите порядковый номер элемента массива= ");
try
{
a= Convert.ToInt32(Console.ReadLine());
b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(array[a] + array[b]);

}
catch (FormatException)
{
result = "Ошибка, вы ввели не числовое значение";
}
catch (IndexOutOfRangeException)
{
result = "Ошибка, индекс вне рамок коллекции";
}
Console.WriteLine(result);
Console.ReadLine();

Лорд Вашингтон 05 июл 2016 16:58
int[] array = {1,4,5,6,7,8,9,2,4,8,5};
string result = "";
int a,b;
Console.Write("Введите порядковый номер элемента массива= ");
try
{
a= Convert.ToInt32(Console.ReadLine());
b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(array[a] + array[b]);

}
catch (FormatException)
{
result = "Ошибка, вы ввели не числовое значение";
}
catch (IndexOutOfRangeException)
{
result = "Ошибка, индекс вне рамок коллекции";
}
Console.WriteLine(result);
Console.ReadLine();

Devo4ka 13 июн 2016 11:52

int[] array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int index_1, index_2;
string result="";
Console.WriteLine ("Введите индексы элементов массива");
try{
index_1=Convert.ToInt32(Console.ReadLine());
index_2=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(array [index_1] + array [index_2]);

}
catch(FormatException){
result = "Вы ввели не число";
}
catch(Exception){
result = "Недопустимый диапазон значений индексов";
}
Console.WriteLine (result);


froggy7151 29 май 2016 18:40
Добрый вечер!Подскажите пожалуйста, мне необходимо чтобы в мою программу заходили при помощи ввода логина и пароля. Как это спрограммировать? Как правильно написать код? Спасибо

Александр Михалев 25 апр 2016 16:49

class Program
{
static void Main(string[] args)
{
int[] arr = { 1, 5, 16, 23, 73, 12, 53, 2, 8, 6 }; // создание массива целых чисел
string result; // результирующая переменная
try
{
Console.WriteLine("Введите порядковый номер 1-го элемента (от 1 до 10)");
int a = Convert.ToInt32(Console.ReadLine());
a = --a; // счетчик -1. Для правильного отображения результата, т.к. 1 эл. массива начинается с 0 а пользовательно может ввести цифры от 1 до 10.
Console.WriteLine("Введите порядковый номер 2-го элемента (от 1 до 10)");
int b = Convert.ToInt32(Console.ReadLine());
b = --b; // точно такой же счетчик как и для а только для b
int plus = arr[a] + arr[b]; // сложение элементов
result = "Сумма элементов " + ++a + " и " + ++b + " равна " + plus; // результат сложения
}
catch(FormatException) // 1 исключение.
{
result = "Простите но вы ввели НЕ числа. Повторите еще раз..";

}
catch(IndexOutOfRangeException) // 2 исключение
{
result = "Простите но вы ввели порядковые номера элементов\nкоторые находятся вне рамок массива. Попробуйте еще раз..";
}
Console.WriteLine(result); // вывод результата на экран.
Console.ReadKey();
}
}

Стас 19 апр 2016 09:27

static void Main(string[] args)
{
string result = "";
try
{
int[] massive = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Console.WriteLine("Введите порядковый номер первого массива:");
int m1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите порядковый номер второго массива:");
int m2 = Convert.ToInt32(Console.ReadLine());
m1 = --m1;
m2 = --m2;
int r = massive[m1] + massive[m2];
Console.WriteLine("Сумма двух выбранных элементов массива составляет: " + r);
}
catch (FormatException)
{
result = "Вы ввели не число!";
}
catch (IndexOutOfRangeException)
{
result = "Порядковый номер элемента задан неверно, введите число от 1 до 10";
}
Console.WriteLine(result);
Console.ReadKey();
}

m1=--m1 и m2=--m2 для удобства пользователя, дабы первый элемент массива и последующие вызывался цифрой 1, а не 0.

Артем 16 апр 2016 19:19

while (true)
{
try
{
int[] numbers = { 5, 61, 32, 1, 2, 3, 6 };
Console.WriteLine("Введите место первого числа в массиве");
int i1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Вы выбрали число " + numbers[i1]);
Console.WriteLine("Выберите место второго числа в массиве");
int i2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Вы выбрали число " + numbers[i2]);
Console.WriteLine(numbers[i1] + numbers[i2]);
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Данного массива не существует");
}
catch (FormatException)
{
Console.WriteLine("Формат не задан или задан неправильно");
}
Console.ReadKey();
}

Анна Черных 29 фев 2016 21:09
class Program
{
static void Main(string[] args)
{ int a, b,sum;
int[] numbers = { 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 };
do
{
sum = 0;
Console.WriteLine("Vvedite dva chisla");
try
{
a = Convert.ToInt32(Console.ReadLine());
b = Convert.ToInt32(Console.ReadLine());
sum = numbers[a] + numbers[b];
Console.WriteLine(sum);
}
catch (FormatException)
{ Console.WriteLine("Vveli neverno, vvedite chislo"); }
catch (IndexOutOfRangeException)
{ Console.WriteLine("Vveli neverno, vvedite chislo ot 0 do 9"); }
}
while (sum == 0);
Console.ReadLine();
}
}

Виктор 19 фев 2016 10:06

//Begin
string result = "";
bool icheck = false;
int i1, i2, i3;
int [] imassiv = {10,20,30,40,50,60,70,80,90,100};
while (icheck == false) {
try {
Console.WriteLine ("Введите индекс первого числа массива:");
i1 = Convert.ToInt32 (Console.ReadLine ());
Console.WriteLine ("Введите индекс второго числа массива:");
i2 = Convert.ToInt32 (Console.ReadLine ());
i3 = imassiv [i1] + imassiv [i2];
Console.WriteLine (i3);
icheck = true;
Console.ReadKey ();
} catch (FormatException) {
result = "Вводите только числа!";
} catch (IndexOutOfRangeException) {
result = "Индекс массива не может быть отрицательным и больше 9";
}
Console.WriteLine (result);
}
//End

voloshyn-i 12 фев 2016 18:59
class Program
{
static void Main(string[] args)
{
int[] arr = { 3, 5, 7, 4, 2, 9, 0, 12, 34, 1 };
for (int i = 0; i < arr.Length; ++i)
{
Console.Write(arr[i] + ", ");
}

string result = "";

Console.WriteLine('\n' + "Введите два элемента массива от 1 до 10:");
try
{
int i = Convert.ToInt32(Console.ReadLine());
int j = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("\n");
int sum = arr[i-1] + arr[j-1];
Console.WriteLine("Cумма = " + sum);

}
catch (FormatException)
{
result = "Ошибка. Вы ввели не число";
}
catch (IndexOutOfRangeException)
{
result = "Введите число от 1 до 10:";
}

Console.WriteLine(result);
Console.ReadKey();
}
}

dmitry_zon 10 фев 2016 10:44

class Program
{
public static int SumArrayElem(int[] array)
{
Console.WriteLine("Please enter position of the first element from 0 to "+array.Length);
int FirstEl = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please enter position of the second element from 0 to "+array.Length);
int SecondEl = Convert.ToInt32(Console.ReadLine());
int Result = array[FirstEl] + array[SecondEl];
return Result;
}
static void Main(string[] args)
{
int[] Nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
try
{
Console.WriteLine(SumArrayElem(Nums));
}
catch (FormatException)
{
Console.WriteLine("You entered in a wrong format (not numbers), operation may not be finished");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("one or two numbers you've entered are out of the array");
}
finally
{
Console.ReadKey();
}
}
}

stani-wunderbar 05 янв 2016 20:51

static void Main(string[] args)
{
int[] mass = new[] { 2, 45, 32, 43, 65, 17, 42, 80, 33, 71 };
string result;
while (true)
{
try
{
int i, r;
Console.WriteLine("Пожалуйcта введите порядковый номер первого слагаемого:");
i = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Пожалуйcта введите порядковый номер второго слагаемого:");
r = Convert.ToInt32(Console.ReadLine());

int summ = mass[i] + mass[r];
result = "Сумма чисел массива = " + summ;
Console.WriteLine(result);
break;
}
catch (FormatException)
{
result = "Вы ввели не число.";
Console.WriteLine(result);
}
catch (IndexOutOfRangeException)
{
result = "Порядковый номер слагаемых должен быть от 0 до 9.";
Console.WriteLine(result);
}
}
Console.ReadKey();
}

neronovs 03 янв 2016 13:53
class Program
{
static void Main(string[] args)
{
int sum=0;
int[] array = {5, 2, 6, 9, 12, 42, 53, 81, 88, 99};
int[] pos = new int[2];
Console.WriteLine("Enter 2 positions of the array to sum their values");
for (int i = 0; i < pos.Length; i++)
{
try
{
pos[i] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("The value of the position is " + array[pos[i]]);
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("You entered more than 10th (maximum) possition");
}
catch (FormatException)
{
Console.WriteLine("You need entering a number");
}
finally
{

}
}
sum = Convert.ToInt32(array[pos[0]]) + Convert.ToInt32(array[pos[1]]);
Console.WriteLine("The sum of the values from position of the array " + Convert.ToInt32(pos[0]) + " and " + Convert.ToInt32(pos[1]) + " is " + sum);
Console.ReadKey();
}
}

Sergei 27 дек 2015 15:24
Длинновато получилось, как можно упростить код?


static void Main(string[] args)
{
int[] Numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
string result = "";
int number1, number2, number3;
do {
result = "";
try
{
Console.WriteLine("Введите первый элемент массива, который необходимо суммировать :");
number1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второй элемент массива, который необходимо суммировать :");
number2 = Convert.ToInt32(Console.ReadLine());
number3 = Numbers[number1] + Numbers[number2];
}
catch (FormatException)
{
result = "Вы ввели не число, введите число!";
Console.WriteLine(result);
Console.ReadKey();
result = "a";
}
catch (IndexOutOfRangeException)
{
result = "в массиве 10 элементов, введите номер элемента от 0 до 9";
Console.WriteLine(result);
Console.ReadKey();
result = "a";
}
if (result != "a")
{
Console.WriteLine("Сумма данных элементов составляет :" + number3);
Console.ReadKey();
result = "final";
}
}

while (result != "final");

}

RedDevil 05 дек 2015 12:12
Здравствуйте товарищи! Я пишу программу которая находит среднее арифметическое введенных с клавы чисел. Работает хорошо, но есть одна загвоздка. Суть проблемы в том, что если ввести количество слагаемых равное нулю, возникнет неопределенность 0/0 и программа в результате вернет NaN. скажите пожалуйста, как можно исправить эту проблему? Заранее благодарен


[using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;]

[namespace _9
{
class Program
{
static void Main(string[] args)
{

int menu = 0;
while (menu != 2)

{
Console.Clear();
Console.WriteLine("Данная программа находит среднее арифметическое введенных вами чисел");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("1. Ввести количество чисел");
Console.WriteLine("2. Выход");
Console.Write(">>> ");

try
{
menu = int.Parse(Console.ReadLine());
}
catch
{
Console.WriteLine("Не корректный ввод!");
}

if (menu == 1)
{

float ch;
float sum = 0;
int num;
Console.Clear();


Console.WriteLine("Введите одно и более количество слагаемых: ");
Console.Write(">>> ");
try
{
num = Convert.ToInt32(Console.ReadLine());



Console.Clear();
float[] array = new float[num];
for (int i = 0; i < array.Length; i++)
{
Console.Clear();
Console.WriteLine("Введите число номер №{0}:\n\r", i + 1);
array[i] = float.Parse(Console.ReadLine());
sum += array[i];
}
Console.Clear();
ch = (sum / num);

Console.WriteLine("Среднее арифметическое ваших чисел равно: " + ch);
}

catch (FormatException)
{
Console.Clear();
Console.WriteLine("Вы ввели не число!");
Console.ReadKey();
}
catch (System.OverflowException)

{
Console.Clear();
Console.WriteLine("Ноль - недопустимое количество слагаемых!");
Console.ReadKey();
}

Console.ReadKey();
}
}
}
}

}]

RedDevil 28 ноя 2015 11:32
[using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Сумма_двух_элементов_массива_2_
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите размерность массива: ");
try
{
int s;
s = Convert.ToInt32(Console.ReadLine());
int[] array = new int[s];
for (int i = 0; i < array.Length; i++)
{
Console.Write("Введите элемент массива№{0}:\r\n", i + 1);
array[i] = Convert.ToInt32(Console.ReadLine());
}
try
{
int index_one, index_two, sum;
Console.WriteLine("Введите индекс первого слагаемого:");
index_one = Convert.ToInt32(Console.ReadLine());
Console.Clear();
Console.WriteLine("Введите индекс второго слагаемого:");
index_two = Convert.ToInt32(Console.ReadLine());
Console.Clear();
sum = array[index_one] + array[index_two];
Console.WriteLine("Сумма двух слагаемых равна " + sum);
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Недопустимый индекс элемента!");
}

}
catch (FormatException)
{
Console.WriteLine("Вы ввели не число!");
}
Console.ReadKey();

}
}
}

vostok7777 30 окт 2015 20:01
Домашнее задание

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication18
{
class Program
{
static void Main(string[] args)
{
int[] array = { 25, 46, 79, 91, 41, 11, 33, 9, 56, 65 };
Console.WriteLine("Введите индексы элементов массива, которые необходимо суммировать");
try
{
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
int s = array[a] + array[b];

Console.WriteLine("Сумма элементов массива равна: " + s);
}
catch (FormatException)
{
Console.WriteLine("Вы ввели не число");
}
catch(IndexOutOfRangeException)
{
Console.WriteLine("Введенные индексы элементов вне пределов массива");
}

Console.ReadLine();
}
}
}


Дмитрий 13 окт 2015 06:11

using System;

namespace EducationApp
{
class Program
{
static void Main()
{
string result = "";
int[] massive = { 3, 6, 2, 11, 43, 54, 7, 9, 13, 4 };
try
{
Console.WriteLine("Введите первый элемент массива для суммирования:");
int numFirst = massive[Convert.ToInt32(Console.ReadLine())-1];
Console.WriteLine("Введите второй элемент массива для суммирования:");
int numSecond = massive[Convert.ToInt32(Console.ReadLine())-1];
int sum = numFirst + numSecond;
Console.WriteLine("Сумма элементов = {0}", sum);
}
catch (FormatException)
{
result = "Ошибка. Необходимо ввести число.";
}
catch (IndexOutOfRangeException)
{
result = "Ошибка. Номер элемента не может быть больше 10.";
}
Console.WriteLine(result);
Console.ReadKey();
}
}
}


Катя 21 авг 2015 23:51

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lection10z1
{
class Program
{
static void Main(string[] args)
{
string result = "";

try
{
int[] array = new int[10];
Console.WriteLine("Введите 10 чисел ");
for (int i = 0; i < 10; i++)
{
array[i] = Convert.ToInt32(Console.ReadLine());
}

Console.WriteLine("Введенный массив :");
for (int i = 0; i < 10; i++)
{
Console.Write(""+array[i]);
}

Console.WriteLine("\n Введите номера элементов, которые необходимо сложить :");
int a1 = Convert.ToInt32(Console.ReadLine());
int a2 = Convert.ToInt32(Console.ReadLine());
int sum;
sum = array[a1-1] + array[a2-1];
Console.WriteLine("Summa "+sum);


}
catch (FormatException) { Console.WriteLine("Вы ввели не число"); }
catch (IndexOutOfRangeException) { Console.WriteLine("В массиве нет такого номера"); }

Console.ReadKey();
}

}
}



ROOT 04 авг 2015 13:46
\\\Домашнее задание\\\

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication21
{
class Program
{

static void Main(string[] args)
{
Console.WriteLine("Домашнее задание по теме \"Исключения\"\nдля продолжения нажмите любую клавишу...");
Console.ReadLine();
Console.Clear();
string SUMMA;
int[] array = new int[10];
int num_1, num_2, summa;
Random num_3 = new Random();
Console.Write("Массив целых рандомных чисел: ");
for (int i = 0; i < array.Length; i ++ )
{
array[i] = num_3.Next(0, 100);
Console.Write(array[i] + ", ");
}
try
{
Console.WriteLine("\nВведите 2 числа(порядковые номера элементов массива):");
num_1 = Convert.ToInt32(Console.ReadLine());
num_2 = Convert.ToInt32(Console.ReadLine());
summa = array[num_1] + array[num_2];
SUMMA = "Сумма " + num_1 + "-го и " + num_2 + "-го элементов массива = " + summa;
}
catch (FormatException)
{
SUMMA = "Ошибка. Вы ввели не число. Пожалуйста, повторите попытку.";
}
catch (IndexOutOfRangeException)
{
SUMMA = "Ошибка. Элемент вне рамок массива. Пожалуйста, повторите попытку";
}
Console.WriteLine(SUMMA);
Console.ReadLine();
}
}
}

MichGar 25 июл 2015 01:36
/*
Есть массив целых чисел размером 10. С клавиатуры вводится два числа -
порядковые номера элементов массива, которые необходимо суммировать.
Например, если ввели 3 и 5 - суммируются 3-й и 5-й элементы.
Нужно предусмотреть случаи, когда были введены не числа, и когда одно из чисел,
или оба больше размера массива.
*/

using System;

namespace DemoTryCatch
{
class Program
{
static void Main()
{
bool flag = false;
Random r = new Random();
int[] arrayNumber = new int[10];
for (int i = 0; i < arrayNumber.Length; i++)
{
arrayNumber[i] = r.Next(0, 100);
Console.Write(arrayNumber[i] + ", ");
}
Console.WriteLine();
do
{
try
{
Console.Write("Введите первый элемент массива: ");
int firstNumber = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите второй элемент для массива: ");
int secondNumber = Convert.ToInt32(Console.ReadLine());
int summaNumber = arrayNumber[firstNumber - 1] + arrayNumber[secondNumber - 1];
Console.WriteLine("Сумма {0}-го элемента ({1}) и {2}-го элемента ({3}) равна {4}",
firstNumber,
arrayNumber[firstNumber - 1],
secondNumber,
arrayNumber[secondNumber - 1],
summaNumber);
flag = true;
}
catch (FormatException)
{
Console.WriteLine("Вы ввели не число!!!");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Вы вышли за границы массива!!!");
}
} while (!flag);

}
}
}

Павел 02 июл 2015 04:17
Добавил цикл чтобы программа завершалась только после корректного выполнения задачи


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Program
{
class program
{
static void Main(string[] args)
{
int[] SomeNumbers = {12,24,34,43,52,67,79,85,92,10};
bool error = false;

do
{
error = false;
Console.Clear();
for (int i = 0; i < SomeNumbers.Length; i++)
{
Console.WriteLine("N-"+i+": "+SomeNumbers[i]);
}
Console.WriteLine();
Console.WriteLine("Введите порядковый номер чисел которые хотите сложить");
try
{
int[] i2 = new int[2];
i2[0] = Convert.ToInt32(Console.ReadLine());
i2[1] = Convert.ToInt32(Console.ReadLine());
int summ = SomeNumbers[i2[0]] + SomeNumbers[i2[1]];

Console.WriteLine(SomeNumbers[i2[0]] + " + " + SomeNumbers[i2[1]] + " = " + summ);
}

catch (FormatException)
{
Console.WriteLine("Ошибка: числа не были введены");
error = true;
Console.ReadKey();
}

catch (IndexOutOfRangeException)
{
Console.WriteLine("Ошибка: введённые числа не соответствуют порядковым номерам чисел");
error = true;
Console.ReadKey();
}
}
while(error == true);

Console.ReadKey();

}
}
}

Sergey 28 июн 2015 19:04
namespace ConsoleApplication1
{
class Program
{

static void Main(string[] args)
{
int[] numbers = new int[9];
Random rand=new Random();
int i;
for(i=0;i<numbers.Length;i++)
{
numbers[i] = rand.Next(0, 10);
Console.WriteLine(numbers[i]);
}
try
{

Console.WriteLine("Vvedite 1 por0dkovui nomer:");
int d = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Vvedite 2 por0dkovui nomer:");
int e = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("suma chisel, kotorui nahod9ts9 pod danumi por9kovumi nomerami= " + (numbers[d-1] + numbers[e-1]));
}
catch(FormatException)
{
Console.WriteLine("Error");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Vvedena9 informaci9 vne ramkax massiva");
}
Console.ReadKey();

}
}
}



Работает, ура!!!

Velglarn 22 июн 2015 18:22
Спасибо большое за разъяснение, разобрался сразу. Теперь всё отлично работает :) Впредь постараюсь не допускать подобного.

Максим 22 июн 2015 14:13
Velglarn
---
Намудрили. Отделите заполнение массива от ввода индексов и суммирования. В цикле должно быть только:

numbers[i] = rand.Next(0, 100);
Console.WriteLine(numbers[i]);

Ну и вас там стоит непонятный break, который делает выход из цикла после первой итерации.

Velglarn 22 июн 2015 12:19
Здравствуйте. Хотел бы попросить объяснить. Функция работает, а вот массив выводиться на экран не хочет. Выводится лишь его первый элемент, а дальше сразу идёт надпись "Сумма чисел, которые находятся...". Объясните, пожалуйста :)

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] numbers = new int[10];
Random rand = new Random();
int a;
int b;
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = rand.Next(0, 100);
Console.WriteLine(numbers[i]);
try
{
Console.WriteLine("Введите порядковый номер первого числа");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите порядковый номер второго числа");
b = Convert.ToInt32(Console.ReadLine());
a--;
b--;
Console.WriteLine("Сумма чисел, которые находятся под данными порядковыми номерами, равна:" + (numbers[a] + numbers[b]));
break;
}
catch (FormatException)
{
Console.WriteLine("Вами было введено НЕ число");
continue;
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Введённая информация вне границ массива");
continue;
}
}
Console.ReadKey();
}
}
}

AlPer 19 июн 2015 23:23

static void Main(string[] args)
{
//int[] array = new int[10];
//Random r = new Random();
//for (int i = 0; i < 10; i++)
//{
// array[i] = r.Next(0, 101);
//}

int[] array = { 0, 6, 7, 8, 12, 43, 78, 100, 900, 71 };
string result = "";

foreach (var item in array)
{
Console.Write("{0} ", item);
}
Console.WriteLine("\n");
try
{
Console.Write("Введите 1-е число (от 1 до 10): "); int num1 = Int32.Parse(Console.ReadLine()); Console.WriteLine("1-е число: {0}", array[num1 - 1]);
Console.Write("Введите 2-е число (от 1 до 10): "); int num2 = Int32.Parse(Console.ReadLine()); Console.WriteLine("2-е число: {0}", array[num2 - 1]);
Console.WriteLine("Сумма {0} и {1} элементов массива: {2}", num1, num2, array[num1 - 1] + array[num2 - 1]);
}
catch (FormatException)
{
result = "Ошибка. Вы ввели не число";
}
catch (IndexOutOfRangeException)
{
result = "Ошибка. В массиве нет такого элемента";
}
Console.WriteLine(result);
Console.ReadLine();
}

vv-ch 28 май 2015 15:59

static void Main(string[] args)
{
int[] a = new int[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
while (true)
{
try
{
int i1, i2;
i1 = Convert.ToInt32(Console.ReadLine());
i2 = Convert.ToInt32(Console.ReadLine());
i1--;
i2--;
Console.WriteLine(a[i1] + a[i2]);
break;
}
catch (FormatException)
{
Console.WriteLine("Вы ввели данные некорректного формата");
continue;
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Вы некорректную пару индексов массива");
continue;
}
}
}

Александр 24 май 2015 12:05
Спасибо.

Максим 23 май 2015 16:36
Александр
---
Меня об этом уже спрашивали здесь, прочитайте комментарий:
Максим 04 мар 2015 22:10

Александр 23 май 2015 15:26
Максим, помогите
почему исключение IndexOutOfRangeException не выбрасывается после ввода первого элемента? тогда как FormatException выбрасывает сразу.

int a,b,c;
int[] mas = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
try
{
Console.WriteLine("введите первый элемент");
a = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("введите второй элемент");
b = Convert.ToInt16(Console.ReadLine());
c = mas[a] + mas[b];
Console.WriteLine(c);
}
catch (FormatException)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\t\t\tошибка. вы ввели не число");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Введенный элемент больше массива (больше 10)");
}
Console.ReadKey();

Flamingo 18 май 2015 19:09

int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int index_one, index_two, sum;
try
{
Console.WriteLine("Введите индекс первый:");
index_one = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите индекс второй:");
index_two = Convert.ToInt32(Console.ReadLine());
sum = numbers[index_one] + numbers[index_two];
Console.WriteLine("Сумма двух чисел из массива равна " + sum);
}
catch(FormatException)
{
Console.WriteLine("Вы ввели некорректное число!");
}
catch(IndexOutOfRangeException)
{
Console.WriteLine("Данного индекса не существует в массиве чисел!");
}
Console.ReadKey();

Александр_Бугай 06 май 2015 10:11
try
{
int[] array = new int[10];
int first, second;
Console.WriteLine("Put the first number");
int x = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Put the second number");
int y = Convert.ToInt32(Console.ReadLine());
int sum = array[x] + array[y];
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine("Put the number of array" + i);
array[i] = Convert.ToInt32(Console.ReadLine());
if (i == x - 1)
{
first = array[i];
}
if (i == y - 1)
{
second = array[i];
}
}
Console.WriteLine(sum);
Console.ReadKey();

}
catch (FormatException)
{
Console.WriteLine("Please input number");
Console.ReadKey();
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Please input from 0 to 9");
Console.ReadKey();
}

_San4oS_ 28 апр 2015 22:45
Вот как Д. З. решил я:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int c = 4; int d = 6; int s;
int[] array = {10, 56, 22, 12, 45, 6, 78, 23, 100, 200};
try
{
c = Convert.ToInt32(Console.ReadLine());
d = Convert.ToInt32(Console.ReadLine());
s = array[c] + array[d];
Console.WriteLine(s);
}
catch (FormatException)
{
Console.WriteLine("Ошибка. Вы ввели не число.");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Число вне рамок массива.");
}
Console.ReadKey();
}
}
}

Максим 20 апр 2015 11:56
Максим
---
Имя исключения указывать не обязательно (добавлю это замечание в урок):

catch (FormatException) // достаточно так

Объект исключение можно использовать для того же вывода сообщения об ошибке.

Максим 19 апр 2015 22:24
Всё работает...
//---------------------------------------------------------------
try
{
int[] mas = new int[10];
Random rand = new Random();
int count = 0;

for (int i = 0; i < mas.Length; i++)
{
int randNum = rand.Next(0, 100);
mas[i] = randNum;

Console.WriteLine("ячейка под номером: " + count + " = " + randNum);
count++;
}
Console.WriteLine("введите номер ячейки для первого идентификатора");
int num1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите номер ячейки для второго идентификатора");
int num2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(mas[num1] + mas[num2]);
}
catch (FormatException ex00)
{
Console.WriteLine(ex00);
Console.WriteLine(" Вы ввели не число");
}
catch (IndexOutOfRangeException ex01)
{
Console.WriteLine(ex01);
Console.WriteLine(" Объём массива содержит ячейки от 0 до 9. Вы превысили лимит!");
}
Console.ReadKey();
//-----------------------------------------------------------------
...Но(!) есть некоторые нюансы, которые меня немного смущают. Если не использовать имя исключения(ex00 и ex01), то выводит ошибку(выставил имя исключения в теле исключения, не знал куда ещё можно применить). При обработке исключения во время работы программы выходит полный путь до папки с проектом и текст исключения. похоже это както связано - как избежать подобной проблемы и для чего лучше использовать имя исключения в подобных случаях?

Dron 09 апр 2015 22:15
Спасибо Максим

Максим 08 апр 2015 09:41
Dron
---
Как написал ниже Михаил , переменные в блоке try видны только в этом блоке. Просто вынесите объявление этих переменных выше:

int[] massiv = { 78, 56, 258, 74, 55, 99, 66, 88, 26, 12 };
int a, b, c;
try
{
//остальной код
}


Ответ Михаилу
---
Посмотрите ниже в комментариях, там есть хорошие решения. Да и код Дрона после правки будет тем что нужно

Михаил 07 апр 2015 19:33
Хотелось бы увидеть более оптимизированный вариант решения.
Мой код такой:


public static void Main(string[] args)
{
int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; //инициализация массива
int a; //переменная для 1 индекса массива
int b; //переменная для 2 индекса массива

Found1://Метка для возвращения от оператора goto
Console.WriteLine("Введите 1-ый индекс массива");

try
{
a = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число
a = array[a];// определяем число по введенному индексу
}
catch (FormatException) // обработка исключения неверного формата
{
Console.WriteLine("Ошибка, вы ввели не число. Введите число");
goto Found1;// переход к метке Found1
}

catch (IndexOutOfRangeException) // обработка исключения неверного индекса
{
Console.WriteLine("Ошибка, индекс выходит за рамки массива");
goto Found1; // переход к метке Found1
}

Found2: //Метка для возвращения от оператора goto
Console.WriteLine("Введите 2-ой индекс массива");

try
{
b = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число
b = array[b]; // определяем число по введенному индексу
}

catch (FormatException) // обработка исключения неверного формата
{
Console.WriteLine("Ошибка, вы ввели не число. Введите число");
goto Found2; // переход к метке Found2
}


catch (IndexOutOfRangeException) // обработка исключения неверного индекса
{
Console.WriteLine("Ошибка, индекс выходит за рамки массива");
goto Found2; // переход к метке Found2
}

Console.WriteLine("Сумма выбранных элементов = "+(a+b)); //вывод суммы запрашиваемых элементов
Console.ReadKey();
}

Михаил 07 апр 2015 18:51

Dron, похоже что переменная лежащая в блоке try видна только блоку try-catch. Но как сделать её видимой, я не знаю. Столкнулся с такой же проблемой

Dron 03 апр 2015 17:56

static void Main(string[] args)
{
try
{
int[] massiv = { 78, 56, 258, 74, 55, 99, 66, 88, 26, 12 };
int a, b, c;//Первый, второй элемент массива. И сумма элементов массива.
Console.WriteLine("Введите первый элемент массива");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второй элемент массива");
b = Convert.ToInt32(Console.ReadLine());
c = massiv[a] + massiv[b];
}
catch(FormatException)
{
Console.WriteLine("Ошибка, введите число");
Console.ReadLine();
}
catch(IndexOutOfRangeException)
{
Console.WriteLine("Ошибка, такого элемента не существует");
Console.ReadLine();
}
finally
{
Console.WriteLine("Сумма элементов массива равна " + с);
Console.ReadLine();
}
}

Студия ругается на эту строчку:
finally
{
Console.WriteLine("Сумма элементов массива равна " + с);
Console.ReadLine();
}
Элемент "с" не существует в текущем контексте
В чем ошибка?

Andrey 17 мар 2015 21:19
Ще і мій код :):


class Program
{
static void Main()
{
try
{
int[] mass = new int[10] { 5, 8, 98, 54, 8, 72, 68, 95, 4, 10 };
int a, b, c;

a = Convert.ToInt32(Console.ReadLine());
b = Convert.ToInt32(Console.ReadLine());
c = mass[a] + mass[b];

Console.WriteLine(c);
Console.ReadLine();
}
catch (FormatException)
{
Console.WriteLine("Vvedeni nekorektni danni");
Console.ReadLine();
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Vvedeni zaveluki chusla");
Console.ReadLine();
}
}
}


Sapp 10 мар 2015 10:33

int[] mas=new int[9];
Random rnd=new Random();
for (int i = 0; i < mas.Length; i++)
{
mas[i] = rnd.Next(0, 20);
Console.Write(mas[i] + ", ");
}
Console.WriteLine("Введите два индекса массива: ");
try
{
Console.WriteLine(Convert.ToInt32(mas[Convert.ToInt32(Console.ReadLine())] + mas[Convert.ToInt32(Console.ReadLine())]));
}
catch (FormatException)
{
Console.WriteLine("Надо ввести число");
}
catch(IndexOutOfRangeException)
{
Console.WriteLine("За пределами массива");
}
Console.ReadKey();

G1ffy 05 мар 2015 18:57
Понял, спасибо, работает ))

Максим 04 мар 2015 22:10
G1ffy
---
Исключение IndexOutOfRangeException выбрасывается в момент доступа к элементу массива, значит сделаем так:

Console.WriteLine(masiv[Convert.ToInt32(Console.ReadLine()) - 1] + masiv[Convert.ToInt32(Console.ReadLine()) - 1]);

G1ffy 04 мар 2015 21:11
Подскажите,как сделать что бы проверка IndexOutOfRangeException выполнялась сразу после ввода первого числа?

Вот программа, класс Програм:

class Program
{
static void Main(string[] args)
{
int[] masiv = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int firstNumb, secondNumb;

Console.WriteLine("Введите 2 натуральных числа от 1 до 10 ");
try
{
firstNumb = Convert.ToInt32(Console.ReadLine());
secondNumb = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(masiv[firstNumb - 1] + masiv[secondNumb - 1]);
Console.ReadKey();
}
catch (FormatException)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\t\t\tВведите натуральное число");
}
catch (IndexOutOfRangeException)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\t\t\tВведите числа от 1 до 10");
}
Console.ReadKey();

}
}

Максим 04 мар 2015 12:19
side
---
Вы сделали всё как и требовалось.

side 04 мар 2015 12:03
Программа есть, работает. Но смотрю на развёрнутые варианты в комментариях, и пытаюсь понять - то ли там много воды, то ли я что-то не учёл:

			int[] massive = {12,45,73,84,2,7,25,996,46,0};

try
{
int num1=Convert.ToInt32(Console.ReadLine());
int num2=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(massive[num1 - 1] + massive[num2 - 1]);
}
catch(IndexOutOfRangeException)
{
Console.WriteLine("Error; number is greater than 10");
}
catch(FormatException)
{
Console.WriteLine("Error; that is not number");
}

Console.ReadKey();


Генерация архива в условия не входит => создаём предписанный;
Имена проверок не используются => не нужны;

Что-то ещё упустил?

Stahma 23 фев 2015 00:54

Random r = new Random();
Console.WriteLine("Массив:");
int[] arr = new int[10];
for (int i = 0; i < arr.Length; i++)
{
arr[i] = r.Next(10);
Console.Write(" " + arr[i]);
}
Console.WriteLine();
try
{
Console.WriteLine("Введите номер первого элемента");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите номер второго элемента");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Сумма равна {0} ", arr[a] + arr[b]);
}
catch (FormatException ex1)
{
Console.WriteLine("Вы ввели не число");
}
catch (IndexOutOfRangeException ex2)
{
Console.WriteLine("Номер элемента выходит за пределы массива");
}

FREEZON 10 фев 2015 11:31
Оу, точно, можно было так. Спасибо.

Максим 10 фев 2015 09:51
FREEZON
---
Прикольно сделали, что ошибки красным подстветили, и дали возможность повторять ввод, но не без говнокода:

if (result == "y" || result == "Y")

Меняем так:

if (result.ToLower() == "y")

FREEZON 10 фев 2015 08:03
Все просто... Админ проверь, я думаю не должно быть ошибок, и говнокода ведь так ? Вот класс Programm:


class Program
{
static int[] numbers = { 1,2,3,4,5,6,7,8,9,10};
static void Main(string[] args)
{
try
{
Void();
}
catch (IndexOutOfRangeException)
{
Error_IndexOutOfRangeException();
}
catch (FormatException)
{
Error_FormatException();
}
finally
{
Console.WriteLine("\nНажмите Enter чтобы закончить работу."); Console.ReadKey(); Environment.Exit(1);
}
}
static void Error_IndexOutOfRangeException()
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\n\nОшибка! Вы указали не верный индекс массива.\nПопробовать еще раз ? Y/N");
string result = Console.ReadLine();
if (result == "y" || result == "Y")
Main(new string[0]);
}
static void Error_FormatException()
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\n\nОшибка! Указан не верный формат вводимых данных.\nПопробовать еще раз ? Y/N");
string result = Console.ReadLine();
if (result == "y" || result == "Y")
Main(new string[0]);
}
static void Void()
{
Console.Clear();
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Введите два порядковых номера массива numbers:");
int a = numbers[Convert.ToInt32(Console.ReadLine())];
int b = numbers[Convert.ToInt32(Console.ReadLine())];
Console.WriteLine("Сумма значений из массива равна: " + (a + b));

}
}

Максим 07 фев 2015 14:14
Anatoliy
---
Работает так, как вы это определили. Первое число нужно вводить в той же строке где "введите 2 числа", а второе уже ниже. Замените
Console.Write("Введите 2 числа") на Console.WriteLine("Введите 2 числа")

Anatoliy 06 фев 2015 22:14
Подскажите,что не так,почему не работает?

int[] numbers = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Console.Write("Введите 2 числа");

try
{
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());

int sum = numbers[a-1] + numbers[b-1];
Console.WriteLine(sum);
}
catch (FormatException ex)
{
Console.WriteLine("Вы ввели не число");

}
catch (IndexOutOfRangeException ex)
{

Console.WriteLine("Введите числа от 0 до 10");
}
Console.ReadLine();

Максим 05 фев 2015 09:31
HHHaaa
---
Уберите Console.ReadKey();

HHHaaa 04 фев 2015 21:47
Подскажите пожалуйста, почему у меня читает 2 введеный символ? то есть я ввожу 45 - читает 5, ввожу просто 5 выдает "Вы ввели не число"?

static void Main(string[] args)
{
//Есть массив целых чисел размером 10.
//С клавиатуры вводится два числа - порядковые
//номера элементов массива, которые необходимо
//суммировать. Например, если ввели 3 и 5 - суммируются 3-й и 5-й элементы.
//Нужно предусмотреть случаи, когда были введены не числа,
//и когда одно из чисел, или оба больше размера массива.

int[] arrey = new int[10];
Random rand = new Random();

for (int i = 1; i < arrey.Length; i++)
{
arrey[i] = rand.Next(10);
}
int a = 0;
int b = 0;
try
{
Console.Clear();
Console.WriteLine("Введите чилсо 1");
Console.ReadKey();
a = Convert.ToInt32(Console.ReadLine()) - 1;
Console.Clear();
Console.WriteLine("Введите чилсло 2");
Console.ReadKey();
b = Convert.ToInt32(Console.ReadLine()) - 1;
Console.Clear();
Console.WriteLine(a + "- элемент массива =" + arrey[a] + "\r\n" + b + "- элемент массива =" + arrey[b]);
int sum = arrey[a] + arrey[b];
Console.WriteLine("Сумма элементов =" + sum);
}
catch (FormatException eror)
{
Console.WriteLine("Вы ввели не число");
}
catch (IndexOutOfRangeException eror2)
{
Console.WriteLine("Число вне рамок массива, введи число от 1 до 10");
}
Console.ReadKey();
}

Максим 03 фев 2015 11:58
Дмитрий
---
Ниже в комментариях есть решения попроще, например от Adressate.

Одного блока try здесь достаточно. То что вы для двух индексов использовали массив namber (nUmber) тоже не очень, лучше две переменные. Ну и:

int t = (i + 10) * 5;
Array[i] = t;

Здесь нет смысла создавать переменную t, лучше так Array[i] = (i + 10) * 5;

Дмитрий 02 фев 2015 22:19
Доброго времени суток.
У меня вопрос. Является ли моё решение задачи верным ил можно её организовать как то иначе, проще или или совсем по другому?


static void Main(string[] args)
{
//Домашнее задание
//Есть массив целых чисел размером 10. С клавиатуры вводится два числа - порядковые номера элементов массива,
//которые необходимо суммировать. Например, если ввели 3 и 5 - суммируются 3-й и 5-й элементы. Нужно предусмотреть случаи,
//когда были введены не числа, и когда одно из чисел, или оба больше размера массива.

//---------------- Типы исключений -----------------------------------------------------------------------------------
//Exception – базовый тип всех исключений. Блок catch, в котором указан тип Exception будет «ловить» все исключения.
//FormatException – некорректный формат операнда или аргумента (при передаче в метод).
//NullReferenceException - В экземпляре объекта не задана ссылка на объект, объект не создан
//IndexOutOfRangeException – индекс вне рамок коллекции
//FileNotFoundException – файл не найден.
//DivideByZeroException – деление на ноль

int[] Array = new int[10];
Console.Write("Массив: ");
for (int i = 0; i < Array.Length; i++)
{
int t = (i + 10) * 5;
Array[i] = t;

Console.Write(Array[i]+ ", ");
}
Console.WriteLine();

Console.Write("Введите порядковые номера элементов в массиве. \r\n");

int[] namber = new int[2];
int N = 0;
string result = "";
int summ = 0;

for (int i = 0; i < namber.Length; i++)
{
Console.Write(i + 1 + "-oe число. ");
try
{//блок кода, в котором возможно исключение
N = Convert.ToInt32(Console.ReadLine());
result = "";

try
{
summ = summ + Array[N];
namber[i] = N;
}
catch (IndexOutOfRangeException ex)// индекс вне рамок коллекции
{
result = "Число вне рамок коллекции массива";
}

}
catch (FormatException ex)//catch ([тип исключения] [имя])
{//блок кода – обработка исключения
result = "Ошибка. Вы ввели не число";
}
Console.Write(result);

}
Console.Write("Сумма " + namber[0] + "-го и " + namber[1] + "-го индекса массива = " + summ + ".");

Console.ReadKey();

}

Крабец 19 янв 2015 14:43
Adressate, Вы перемножаете индексы элементов а не сам элементы.
class Program
{

static void Main(string[] args)
{

int[] chisla = new int[10];
Random rand = new Random();
for (int i = 0; i < chisla.Length - 1; i++)
{
chisla[i] = rand.Next(1, 10);
Console.Write(chisla[i] + " ");

}
int a = new int();
int b = new int();
bool z = true;


while (z)
try
{
Console.WriteLine("vvedi pervoe chislo");
a = Convert.ToInt32(Console.ReadLine())-1;
Console.WriteLine("vvedi vtoroe chislo");
b = Convert.ToInt32(Console.ReadLine())-1;
Console.WriteLine(chisla[a] + chisla[b]);
Console.ReadKey();
z = false;
}
catch (FormatException)
{
Console.WriteLine("ne chislo");
z = true;
}

catch (IndexOutOfRangeException)
{
Console.WriteLine("elementov vsego" + Convert.ToString(chisla.Length));
z = true;
}


}
}
}

Adressate 16 янв 2015 11:13
Пардон, забыл убрать из кода

z = 1;

Вначале эта переменная была интовой.

Adressate 16 янв 2015 11:10

class Program
{
static public int mnozhka(int a, int b)
{
int c = a * b;
return c;
}

static void Main(string[] args)
{

int[] chisla = { 1, 54, 23, 87, 234, 9, 34, 76, 34, 7, 2343, 82, 396, 347, 2832, 209 };
int a = 0, b = 0; bool z = true;
while (z)
{
Console.Clear();
Console.WriteLine("Выберите кого с кем перемножить:");

try
{
a = chisla[(Convert.ToInt32(Console.ReadLine())) - 1];
b = chisla[(Convert.ToInt32(Console.ReadLine())) - 1]; Console.WriteLine(mnozhka(a, b)); Console.ReadKey();
}

catch (FormatException)
{
Console.WriteLine("Вы чуркистанец? Что такое цифра знаете? Ну-ка, введите всё верно!");
Console.ReadKey(); z = 1;
}

catch (IndexOutOfRangeException)
{
Console.WriteLine("Не попали в диапазон массива. Элементов всего " + chisla.Length);
Console.ReadKey(); z = 1;
}
}
}
}

ДмитрийМ 19 дек 2014 16:05
using System;

namespace ТруКетч1
{
class Program
{
static void Main(string[] args)
{
int[] a = new int[10];
Random rand = new Random();
for (int i = 0; i < a.Length; i++)
{
a[i] = rand.Next(1, 10);
Console.Write(a[i] + " ");
}
Console.WriteLine("Введите 2 порядковых элемента которые хотите суммировать: ");
try
{
int b = Convert.ToInt32(Console.ReadLine());
int c = Convert.ToInt32(Console.ReadLine());
int r = Index1(a, b);
int t = Index2(a, c);
int f = r + t;
Console.WriteLine(f);
}
catch (System.IndexOutOfRangeException)
{
Console.WriteLine("За границами массива");
}
catch(System.FormatException)
{
Console.WriteLine("Не тот формат символов");
}


}
public static int Index1(int[] a, int b)
{
int r = a[b-1];
return r;
}
public static int Index2(int[] a, int c)
{
int t = a[c-1];
return t;
}
}
}

AlexWolf 18 дек 2014 16:19
static void Main(string[] args)
{
int[] group = { 10, 15, 20, 25, 30, 35, 40, 45, 50, 55 };
int a = 0;
int b = 0;
int c = 0;

try
{
Console.WriteLine("Введите первый индекс");
a = group[Convert.ToInt16(Console.ReadLine())];
Console.WriteLine("Введите второй индекс");
b = group[Convert.ToInt16(Console.ReadLine())];
c = a + b;
Console.WriteLine("сумма " + c);
}
catch (FormatException)
{
Console.WriteLine("Ошибка!!! Вы ввели не число.");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Ошибка!!! Введите число от 0 до 9");
}
Console.ReadKey();

}

baks85 17 дек 2014 22:18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication14
{
class Program
{
public static int MasSum(int[] array, int a, int b)
{

int sum = array[a-1] + array[b-1];

return sum;
}
static void Main(string[] args)
{
int result;
int[] array = new int[] { 1, 4, 5, 7, 9, 45, 66, 81, 45, 65 };
try
{
Console.WriteLine("выберите действие" +"\n 1- сложить члены массива");
int variant = Convert.ToInt32(Console.ReadLine());
if (variant == 1)
{
Console.WriteLine("Введите 2 порядковых номера элементов, которые хотите суммировать");
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
result = MasSum(array, a, b);
Console.WriteLine(result);
Console.ReadKey();
}
if (variant > 1 | variant == 0)
{
Console.WriteLine("такого варианта несуществует!");
Console.ReadKey();
}
}
catch (FormatException)
{
Console.WriteLine("Вы вели не число");
Console.ReadKey();
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("вы ввели порядковый номер несуществующего члена массива");
Console.ReadKey();
}
}
}
}

Макс 14 дек 2014 16:52
Проверьте пож.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exception_Lesson
{
class Program
{
static void Main(string[] args)
{
/*
* Есть массив целых чисел размером 10.
* С клавиатуры вводится два числа - порядковые номера элементов массива, которые необходимо суммировать.
* Например, если ввели 3 и 5 - суммируются 3-й и 5-й элементы.
* Нужно предусмотреть случаи, когда были введены не числа, и когда одно из чисел, или оба больше размера массива.
*/

int[] num_array = new int[] { 1, 11, 27, 13, 45, 25, 66, 57, 98, 49, 130};
int array_lenght = num_array.Length;
Console.Write("Введите первое число: ");
int get_number_one;
bool get_number_one_result = int.TryParse(Console.ReadLine(), out get_number_one);
Console.Write("Введите второе число: ");
int get_number_two;
bool get_number_two_result = int.TryParse(Console.ReadLine(), out get_number_two);
string result = "";
try
{
if (!get_number_one_result && !get_number_two_result)
{
result = "Вы не указали ни одного значения или они были не числовыми!";
}
else
{
if(!get_number_one_result)
{
result = "Вы не указали первое значение или оно было не числовым!";
}
if (!get_number_two_result)
{
result = "Вы не указали второе значение или оно было не числовым!";
}
}
if(result == "")
{
int sum = num_array[get_number_one] + num_array[get_number_two];
Console.WriteLine("Сумма элементов {0} и {1} равна {2}:",get_number_one, get_number_two, sum);
Console.ReadKey();
}
}
catch (IndexOutOfRangeException)
{
if ((get_number_one > (array_lenght - 1))
&& (get_number_two > (array_lenght - 1))
|| ((get_number_one < (array_lenght - 1))
&& (get_number_two < (array_lenght - 1))))
{
result = "Оба числа выходят за рамки массива!";
}
else
{
if (get_number_one > (array_lenght - 1) || (get_number_one < array_lenght-1))
{
result = "Первое число выходит за рамки массива!";
}
if (get_number_two > (array_lenght - 1) || (get_number_two < array_lenght - 1))
{
result = "Второе число выходит за рамки массива!";
}
}
}
finally
{
if (result != "")
{
Console.WriteLine(result);
Console.ReadKey();
}
}
}
}
}

Dimon 29 ноя 2014 11:14
int[] array = {1,2,3,4,5,6,7,8,9,10};
Console.Write("Enter a number a: ");
try
{
int a = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter a number b: ");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(array[a] + array[b]);
}
catch (IndexOutOfRangeException re)
{
Console.WriteLine(re.Message);
}
catch (FormatException ex)
{
Console.WriteLine(ex.Message);
}

Console.ReadKey();

Диманиак 21 ноя 2014 18:47
int[] massiv = {1,2,3,4,5,6,7,8,9,10};
Console.WriteLine("Введите два порядковых номера элементов массива (от 0 до 9)");
try
{
int firstNum = Convert.ToInt32(Console.ReadLine());
int secondNum = Convert.ToInt32(Console.ReadLine());
int sum = massiv[firstNum] + massiv[secondNum];
Console.WriteLine("Сумма " + firstNum + " и " + secondNum + " элементов массива равна " + sum);
}
catch (FormatException ex)
{
Console.WriteLine(ex.Message);
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.ReadKey();
}

Максим 13 ноя 2014 19:07
Эля
---
Если n1 и n2 15 и 100, а i в цикле изменяется от 0 до 9, как это условие может быть true?
if (i==(n1-1) || i==(n2-1))
{
Console.WriteLine(ar[i]);
}
Никак. Зачем искать элементы в цикле, если индексы уже известны, и можно сразу доступиться к элементам:
Console.WriteLine(ar[n1-1]);
Console.WriteLine(ar[n2-1]);

Эля 12 ноя 2014 21:16
Добрый день, не могу найти ошибку, программа работает, но не пишет ошибку, когда размер выходит за рамки.
Заранее спасибо!

class Program
{
static void s(int[] ar, int n1, int n2)
{
try
{
for (int i=0; i<ar.Length;i++)
{
if (i==(n1-1) || i==(n2-1))
{
Console.WriteLine(ar[i]);
}
}
}
catch(IndexOutOfRangeException)
{

Console.WriteLine("bad");
}
catch (FormatException )
{

Console.WriteLine("bad");
}
}
static void Main(string[] args)
{
int[] arr = new int[10];
for (int i = 0; i < arr.Length; i++)
{
arr[i] = i + 10;
Console.WriteLine(arr[i]);
}
Console.WriteLine(" ");
s(arr, 15, 100);
Console.ReadKey();
}
}

Максим 10 ноя 2014 19:17
Julia
---
Пример довольно бессмысленный, но показывает как это работает:

public static int SumArrayElements(int[] NumbersAr, int a, int b)
{
if (a < 0 || b < 0 || a >= NumbersAr.Length || b >= NumbersAr.Length)
throw new IndexOutOfRangeException();
else
return NumbersAr[a] + NumbersAr[b];
}

static void Main(string[] args)
{
int[] NumbersAr = new int[10];
Random rnd = new Random();

string result = "";

for (int i = 0; i < 10; i++)
{
NumbersAr[i] = rnd.Next(0, 10);
Console.Write(NumbersAr[i] + " ");
}
Console.WriteLine();

Console.WriteLine("Введите первый Индекс:");
int a = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число
Console.WriteLine("Введите второй Индекс:");
int b = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число

try
{
Console.WriteLine(SumArrayElements(NumbersAr, a, b));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}

Julia 10 ноя 2014 10:10
Здраствуйте Админ,
я пробовала поигратся со throw но у меня нечего не получилось не какое исключение не возращается. вы можете показать наглядный пример, даже если можно с моим кодом!!! Спасибо!!!

Рома 08 ноя 2014 19:13
спасибо за уроки, доступно и интересно.
static void Main(string[] args)
{
int[] mas = {1,2,3,4,5,6,7,8,9,10};
int a=0;
for (int i = 0; i < 2; i++)
{
try
{
Console.Write("Enter numeral #" + (i + 1) + ": ");
a += mas[Convert.ToInt32(Console.ReadLine())-1];
}
catch (FormatException)
{
Console.WriteLine("It's not a number!");
i -= 1;
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("It's out of range!");
i -= 1;
}
}

Console.WriteLine("Sum = " + a);
Console.ReadKey();
}

Максим 06 ноя 2014 19:06
Julia
---
С помощью throw можно самому генерировать исключение где угодно. Например, в вашем методе, и тогда этот метод стоит вызывать в блоке try, так как он (метод) может выбросить исключение. Обычно он используется с общим исключение Exception или с собственными, IndexOutOfRangeException самому выбрасывать нет смысла, можно достаточно попытаться получить доступ к элементу массива

Julia 06 ноя 2014 10:59
Админ Расскажите пожалуйста как пользоваться вот этом:
throw new IndexOutOfRangeException();
throw new DivideByZeroException();
а то я пробовала и нечего не получается....
покажите куда в коде это вставляют....
спосибо

Julia 05 ноя 2014 15:39
Отличное задание вот что получилось
static void Main(string[] args)
{
int[] NumbersAr=new int[10];
Random rnd = new Random();

string result = "";

for (int i = 0; i < 10; i++ )
{
NumbersAr[i] = rnd.Next(0, 10);
}
Console.WriteLine("Введите первый Индекс :");
try
{

int a = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число
Console.WriteLine("Введите второй Индекс:");
int b = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число
int r = NumbersAr[a] + NumbersAr[b];

result = "Результат Выражение " + "(" + NumbersAr[a] + "+" + NumbersAr[b] + ")" + " = " + r;
}
catch (FormatException ex)
{
result = "Ошибка! Вы ввели не число";


}
catch (IndexOutOfRangeException ex)
{
result = "Ошибка! Индекс вне рамок массива";
}

Дмитрий 29 окт 2014 10:52
Аргумент и массив передаются в метод Provepka, для проверки обеих на соответствие требованиям если можно так сказать...
а на счёт перевода Console.Write("Потворите ввод: "); не по думал ))) в два часа ночи тяжело было думать =)))

Максим 28 окт 2014 20:45
Дмитрий
---
Непонятно зачем передается второй аргумент в метод Proverka.
Console.Write("Потворите ввод: "); лучше перенести в блок catch перед return

Дмитрий 28 окт 2014 02:25
перепутал местами:

int a = mass[chiclo];
и
chiclo -= 1;

в начале кода )) извиняюсь ))
а так, оцените мою кракозябру пожалуйста =)

Дмитрий 28 окт 2014 02:14
static int Proverka (int [] mass, int chiclo)
{
try
{
chiclo = Convert.ToInt32(Console.ReadLine());
int a = mass[chiclo];
chiclo -= 1;
return chiclo;
}
catch (FormatException ex)
{
Console.WriteLine("Ввод должен быть только цифер !");
return -1;
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("Индекс вне рамок массива !");
return -1;
}
}
static void Main(string[] args)
{
int [] Massiv = {5, 10, 36, 2, 76, 18, 34, 95, 64, 70};
int a = 0, b = 0, Peshenie;
Console.WriteLine("\tВведите два числа, которые будут взяты из массива и прибавлены:\n\n");
Console.WriteLine("От 1 до 10 !\n");
Console.Write("Первый: ");
do
{
a = Proverka(Massiv, a);
if (a == -1)
{
Console.Write("Потворите ввод: ");
}
}
while (a == -1);
Console.Write("Второй: ");
do
{
b = Proverka(Massiv, b);
if (b == -1)
{
Console.Write("Потворите ввод: ");
}
}
while (b == -1);
Console.Write("\nЧисла которые вы выбрали из массива, это: {0} и {1}", Massiv[a], Massiv[b]);
Peshenie = Massiv[a] + Massiv[b];
Console.WriteLine(", ответ : {0}", Peshenie);
Console.ReadKey();
}

Евгений 19 окт 2014 13:58
static void Main(string[] args)
{
string result = "";
int[] mas = {1,2,3,4,5,6,7,8,9,0};
Console.WriteLine("Введите число:");
try
{
int a = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число
int b = Convert.ToInt32(Console.ReadLine());
int q;
q = mas[a] + mas[b];
result = "Сумма чисел " + q;
}
catch (FormatException)
{
result = "Ошибка. Вы ввели не число";}
catch (IndexOutOfRangeException)

{ result = "Ошибка. Вы ввели слишком большие числа"; }

Console.WriteLine(result);
Console.ReadLine();
}

Slavik 26 сен 2014 21:46
спасибо за урок

{
try
{
int[] array = new int[10];
Random rand = new Random();
int sum = 0;

for (int i = 0; i < array.Length; i++)
{
array[i] = rand.Next(0, 9);
Console.Write(array[i] + " ");
}
Console.WriteLine("\nEnter number: ");
int first = Convert.ToInt32(Console.ReadLine());
int second = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < array.Length; i++)
{
if (i == (first - 1))
{
sum = array[i];
}
if (i == (second - 1))
{
sum += array[i];
}
}
Console.Write("sum = " + sum);
}
catch (FormatException)
{
Console.WriteLine("You didn't enter numbers");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Your numbers went out from range");
}
Console.ReadKey();
}

задание не вышло до конца, не проводит проверку, если ввожу числа за рамками массива, день просидел, так и не поборол
помогите!)

Di 05 сен 2014 13:57
try
{
int[] array = new int[10];
Console.WriteLine("Введите порядковый номер массива:");
string indexOne = Console.ReadLine();
string indexTwo = Console.ReadLine();
int indexOneInt;
indexOneInt = Convert.ToInt32(indexOne);
int indexTwoInt;
indexTwoInt = Convert.ToInt32(indexTwo);

int result = 0;
for (int i=0; i != indexOneInt; i++)
{
result++;
array[i] = result + 1;

}
Console.WriteLine("1ое число: " + result);
int resultTwo = 0;
for (int k = 0; k != indexTwoInt; k++)
{
resultTwo++;
array[k] = result + 1;

}
Console.WriteLine("2ое число: " + resultTwo);

int sum;
sum = result + resultTwo;
Console.WriteLine("сумма= " + sum);

Console.ReadLine();
}

catch(Exception)
{
Console.WriteLine("не получилось");
Console.ReadLine();
}

Vera 27 авг 2014 13:56
using System;

namespace Isk
{
class MainClass
{
public static void Main (string[] args)
{
Random rnd=new Random();
string result="";
int[] massiv=new int[10];
for (int i=0; i<massiv.Length; i++)
{
massiv[i]=rnd.Next(10);
Console.Write(massiv[i]+" ");
}
Console.WriteLine("");
try
{
Console.WriteLine("Введите 1 номер элемента ");
int a= Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Введите 2 номер элемента ");
int b= Convert.ToInt16(Console.ReadLine());
int sum=massiv[a]+massiv[b];
Console.WriteLine("Сумма чисел равна " + sum);
}
catch (IndexOutOfRangeException ex)
{
result="В массиве 10 элементов! Введите значение от 0 до 9.";
}
catch(FormatException exp)
{
result="Введите цифру в диапазоне от 0 до 9.";
}
Console.WriteLine(result);

}
}
}

Максим 21 авг 2014 21:06
Benzo
---
Исключение IndexOutOfRangeException выбрасывается в момент доступа к элементу массива, вы это делатее после ввода двух индексов (нахождение суммы)

Benzo 21 авг 2014 01:03
static void Main(string[] args)
{//программа обрабатывает исключения при занесении в массив и выход за пределы массива
int a, b, sum;
int[] mas = new int[10];
try
{
Console.WriteLine("Введите 10 элементов массива");
for (int i = 0; i < mas.Length; ++i)//заполняем массива
mas[i] = int.Parse(Console.ReadLine());

Console.WriteLine("Введите первый элемент массива для сложения");
a = int.Parse(Console.ReadLine());
Console.WriteLine("Введите второй элемент массива для сложения");
b = int.Parse(Console.ReadLine());
sum = mas[a-1] + mas[b-1];

Console.WriteLine("Сумма {0} и {1} элементов равна {2}", a, b, sum);
}

catch (FormatException)//исключение ввода не цифр
{
Console.WriteLine("Вводить нужно только числа");
}

catch (IndexOutOfRangeException)//исключение ввода индекса больше размера массива
{
Console.WriteLine("Вводить нужно только цифры от 1 до 10");
}

Console.ReadKey();
}



Почему второй блок catch обрабатывается только после ввода второго элемента массива для ввода ? Тоесть если специально ввести индекс больше 10, то прога просит ввести второй индекс для вычисления, а уже потом выдает сообщение из исключения. Разве исключение не должно возникнуть уже при первом выходе за пределы массива ?

Вадим 19 авг 2014 14:17
Спасибо за замечательные уроки!
Вот моё решение:
static void Main(string[] args)
{
while (true)
{
int[] numbers = { 7, 8, 1, 5, 9, 4, 5, 7, 8, 1 };
try
{
Console.Write("Введите первое число: ");
int a = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите второе число: ");
int b = Convert.ToInt32(Console.ReadLine());
int c;
for (int i = 0; i < 1; i++)
{
c = numbers[a] + numbers[b];
Console.WriteLine(c);
}
}
catch (FormatException)
{
Console.WriteLine("Вы не ввели число или вообще ничего не ввели.");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Вне рамок массива.");
}
}
}

nadjon4ik 30 июл 2014 22:17
public static int consol(int numb)
{
int k, l;
string line;
string[] tmp;
line = Console.ReadLine();
tmp = line.Split(' ');
if (tmp.Length != numb)
{
throw new Exception("Enter exactly " + numb + " numbers");
}
Console.Write("Введiть порядковий номер першого числа масива,який потрiбно додати: ");
int n = Convert.ToInt32(Console.ReadLine());
if (n <= 0) { throw new Exception("Error!(Your number is negative or 0)"); }
Console.Write("Введiть порядковий номер другого числа масива,який потрiбно додати: ");
int n1 = Convert.ToInt32(Console.ReadLine());
if (n1 <= 0) { throw new Exception("Error!(Your number is negative or 0)"); }

int[] mas = new int[numb];
for (int i = 0; i < numb; ++i)
{
mas[i] = Convert.ToInt32(tmp[i]);

if (i == n)
{

k = mas[i - 1];


for (int j = 0; j < mas.Length; ++j)
{
if (j == n1)
{
l = mas[j - 1];

int s = k + l;
Console.Write("Сумма :{0} ", s);


}
}
}
}
return numb;
}
public static void consol1(int numb)
{
string line;
string[] tmp;
line = Console.ReadLine();
tmp = line.Split(' ');

if (tmp.Length != numb)
{
throw new Exception("Enter exactly " + numb + " numbers");
}
int[] mas = new int[numb];
for (int i = 0; i < numb; ++i)
{
mas[i] = Convert.ToInt32(tmp[i]);
Console.Write("Сумма :{0} ", mas[0]);


}
}
public static void consol2(int numb)
{
string line;
string[] tmp;
line = Console.ReadLine();
tmp = line.Split(' ');
if (tmp.Length != numb)
{
throw new Exception("Enter exactly " + numb + " numbers");
}


int[] mas = new int[numb];
for (int i = 0; i < numb; ++i)
{
mas[i] = Convert.ToInt32(tmp[i]);


}
Console.WriteLine("Сумма :{0}", +(mas[0] + mas[1]));



}







public static void Main()
{
try
{
Console.Write("Введiть розмiр масива: ");
int o = Convert.ToInt32(Console.ReadLine());
if (o <= 0)
{
throw new Exception("Error!(Your number is negative or 0)");
return;
}
else
if (o == 1) { Console.Write("Enter number: "); consol1(o); return; }
else if (o == 2) { Console.Write("Enter numbers: "); consol2(o); }
else
{
Console.Write("Enter number in the line of: ");
consol(o);
}
Console.ReadKey();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.ReadKey();

n0n4m3r 30 июл 2014 10:24
Random filling = new Random();
int[] array = new int[10];
for (int i = 0; i < array.Length; ++i)
array[i] = filling.Next(0, 11);
for (; ; )
{
try
{
for (int i = 0; i < array.Length; ++i)
Console.Write(array[i] + " ");
Console.WriteLine("\nEnter numbers from 1 to 10: ");
int num1, num2;
num1 = Convert.ToInt32(Console.ReadLine());
num2 = Convert.ToInt32(Console.ReadLine());
int result = array[num1 - 1] + array[num2 - 1];
Console.WriteLine(result);
break;
}
catch (FormatException ex)
{
Console.Clear();
Console.WriteLine("Need to enter numbers only!");
}
catch (IndexOutOfRangeException ex)
{
Console.Clear();
Console.WriteLine("Please enter numbers from 1 to 10 only!");
}
}

Console.ReadKey();

Максим 01 июл 2014 15:38
AlexSerikov
---
Указывайте только тип, без имени переменной:
catch (FormatException)

AlexSerikov 30 июн 2014 22:12
При объявлении исключений, в списке ошибок пишется, что переменная ex ни разу не использована. Я понимаю, что так должно быть, однако, мозолит глаза. Придется с этим жить или можно убрать ?
//catch (FormatException ex)

Yegor 25 май 2014 18:49
int[] mas = new int[10];
Console.WriteLine("Введите 10 элементов массива: ");
try
{
for (int i = 0; i < mas.Length; i++)
{
Console.WriteLine("Введите " + (i+1) + "-й элемент массива: ");
mas[i] = Convert.ToInt32(Console.ReadLine());

}
int a, b;
Console.WriteLine("Введенный вами массив: ");
Console.WriteLine();
for (int i = 0; i < mas.Length; i++)
{
Console.Write(mas[i] + " ");
}
Console.WriteLine();
Console.WriteLine("Введите номера ДВУХ элементов массива для суммирования: ");
a = Convert.ToInt32(Console.ReadLine());
b = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Сумма элементов " + a + " и " + b + " = " + (mas[a - 1] + mas[b - 1]));
}
catch (FormatException)
{
Console.WriteLine("Вы ввели не число");
}
catch (IndexOutOfRangeException)
{
Console.Write("Номер одного из элементов больше количества элементов массива");
}

Console.ReadKey();

Яков 21 май 2014 18:13
Admin
___
спасибо,я понял про answer,и сделал так
int[] arr = { 5, 5, 7, 2, 645, 3, 5, 3, 2, 56 };
Console.WriteLine("enter 2 ids between 1 and 10 for getting their meaning summer");
try
{
int num1 = int.Parse(Console.ReadLine());
int sum = arr[num1 - 1];
int num2 = int.Parse(Console.ReadLine());
sum += arr[num2 - 1];
Console.WriteLine(sum);
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("One of your numbers out of range error");
}
catch (FormatException ex)
{
Console.WriteLine("Error,please enter only numbers") ;
}
Console.ReadKey();

Максим 21 май 2014 14:07
Яков
---
Всё правильно, только зачем тут еще создавать переменную answer, когда в summ уже есть результат. Выводите summ

Яков 21 май 2014 00:15
проверь плиз домашку)
int[] arr = {5,5,7,2,645,3,5,3,2,56};
Console.WriteLine("enter 2 ids between 1 and 10 for getting their meaning summer");
string answer="";
try
{
int num1 = int.Parse(Console.ReadLine());
int sum = arr[num1 - 1];
int num2 = int.Parse(Console.ReadLine());
sum += arr[num2 - 1];
answer = sum.ToString();

}
catch (IndexOutOfRangeException ex)
{
answer = "One of your numbers out of range error";
}
catch ( FormatException ex)
{
answer = "Error,please enter only numbers";
}
Console.WriteLine(answer);

Илюхинг 25 апр 2014 13:49
Моя домашка)

static void Main(string[] args)
{

int[] Massive = {10,5,8,2,1,9,8,5,3,7};
int a, b,s;

try
{
Console.WriteLine("Имеется массив состоящий из 10 символов.");
for (int i = 0; i < Massive.Length; i++)
Console.Write(Massive[i]+" ");
Console.WriteLine("\n\nВведите порядковые номера двух чисел которые хотите сложить.");
Console.WriteLine("Введите первый номер: ");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второй номер: ");
b = Convert.ToInt32(Console.ReadLine());
s = Massive[a-1] + Massive[b-1];
Console.WriteLine("Сумма чисел массива равна: "+s);

}
catch(FormatException ex)
{
Console.WriteLine("Ошибка! Вы ввели не число!");
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("Ошибка! Порядковый номер должен быть в диапазоне от 1 до 10!");
}



Console.ReadKey();

}

mR SmiLe 16 апр 2014 14:12
Домашняя легкая правда) И урок легкий + еще полезный помогает от краша программ при ошибке.

Вот ДЗ:

static void Main(string[] args)
{
string error = "";
int[] arry = {1,2,3,4,5,6,7,8,10};
try
{
Console.WriteLine("Введите индекс первого числа");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите индекс второго числа");
int b = Convert.ToInt32(Console.ReadLine());
int mm = arry[a - 1] + arry[b - 1];
error = Convert.ToString(mm);
}
catch
{
error = "Введите числовое значение!";
}
Console.WriteLine(error);
Console.ReadKey();





}

Максим 13 апр 2014 23:02
евгений
---
Непонятно для чего это всё нужно. Возможно, вам следует копнуть в сторону сокетов?

евгений 13 апр 2014 17:36
Люди добрые посоветуйте.
есть скрип на открытие портов,но он открывает только ком порты.
вопрос такой обствено как открыть допустим порт 5300 ну или ему подобные
вот скрипт который пытался приминить,не чего не выходит

try
{
using System.IO.Ports;
SerialPort sp = new SerialPort();
sp.PortName = ""; //сюда вписываем номер или имя порта
sp.Open();
}
catch(Exception exc) { Console.WriteLine(exc.Message); }

мне нужно решени для сервер-клиент ,тоесть чтоб при запуске нужный порт открывался овтаматический,тоесть чтоб не надо было юзаку лазить по брандмауерам всяким фаерволам и т.д
если есть решени такое,направте пальцем хотябы в нужную сторону.А желательно примерчик скрипта .
зарание благодарствую

Farid 07 апр 2014 13:18
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int a, b, sum;
sum = 0;
Console.WriteLine("введите индекс первого числа -");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите индекс второго числа -");
b = Convert.ToInt32(Console.ReadLine());
try
{
sum = array[a-1] + array[b-1]; // Значение индекса вводим на 1 меньше, т.к компьютер в отличии от человека начинает счет с нуля
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Вы неверно ввели индекс чисел");
}
Console.WriteLine(sum);
Console.ReadKey();

Максим 02 апр 2014 18:48
Ромик
---
Ну так искючение выбрасывается в момент обращения к элементу массива. Ввести вы можете что хотите, а вот когда будете использовать неправильно, тогда и будет исключение. Тот цикл do-while здесь смысла не имеет

Ромик 02 апр 2014 11:12
дз выполнил, но потом решил попробовать без второго кетч.
получилось вот так:
try
{
do
{
Console.WriteLine("Введите номер первого числа");
i = int.Parse(Console.ReadLine());
}
while (i > 0 && i < 11);
Почему он пропускает число 11 и больше и только после этого выдает ошибку про выход за пределы массива?

Gromal 26 мар 2014 00:33
class Program
{
public static int vvod(int[] array)
{
bool TestNom = false;
int nom=0;

do
{
try
{
nom = array[Convert.ToInt32(Console.ReadLine())];
TestNom = true;
}
catch (FormatException)
{
Console.WriteLine("Введено не число! Повторите ввод: ");
}

catch (IndexOutOfRangeException)
{
Console.WriteLine("Введенный индекс за пределами массива! Повторите ввод: ");
}
}
while (TestNom == false);
return nom;
}

static void Main(string[] args)
{
int[] mass = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int a, b, result;

Console.WriteLine("Сложение чисел: ");

Console.WriteLine("Введите индекс первого числа:");
a = vvod(mass);

Console.WriteLine("Введите индекс второго числа:");
b = vvod(mass);

result = a + b;

Console.WriteLine("a: " + a);
Console.WriteLine("b: " + b);
Console.WriteLine("Результат: " + result);

Console.ReadKey();
}
}


Евгений 17 мар 2014 23:07
static void Main(string[] args)
{
int[] array = {5,6,1,4,6,7,4,1,5,7};
Console.WriteLine("Vvedite indeksi 2 chisel");

try
{
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(array[a] + array[b]);
}
catch (FormatException ex)
{
Console.WriteLine("Prover'te pravilnost' formata dannih");
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("indeks vne ramok massiva");
}
Console.ReadKey();
}

Максим 10 мар 2014 11:57
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var s=0;
Int32 a, b;
string i, j;
Console.WriteLine("Введите первый индекс");
Console.WriteLine("Введите второй индекс");
i = Console.ReadLine();
j = Console.ReadLine();
try
{
a = Convert.ToInt32 (i);
b = Convert.ToInt32 (j);
}
catch (Exception ex)
{
Console.WriteLine("Введите правильные данные");
Console.ReadKey();
}
//a = i;
//b = j;

try
{
s = array[Convert.ToInt32(i)] + array[Convert.ToInt32(j)];
Console.WriteLine("Сумма выбранных элементов составляет "+s);
}
catch (Exception ex2)
{
Console.WriteLine("Необходимо было ввести целые числа от 0 до 9");
Console.ReadKey();
}
Console.ReadKey();

Xirus 18 фев 2014 14:51
int[] arr = new int[10] { 1, 3, 5, 8, 9, 6, 7, 5, 9, 3 };
try
{
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("result {0}", arr[a] + arr[b]);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}

Eugen 07 фев 2014 17:51
namespace Lesson10
{
class Program
{
static void Main(string[] args)
{
int[] Array = { 5, 7, 4, 3, 5, 32, 17, 83, 0, 5 };
Console.WriteLine("Введите через \"enter\" номера элементов массива, которые вы хотите сложить");
try
{
int a = Convert.ToInt16(Console.ReadLine());
int b = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("{0}+{1}={2}", Array[a-1], Array[b-1], Array[a-1] + Array[b-1]);
Console.ReadKey();
}
catch (FormatException ex1)
{
Console.WriteLine("Вы ввели слово(а), введите пожалуйста числа");
int a = Convert.ToInt16(Console.ReadLine());
int b = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("{0}+{1}={2}", Array[a - 1], Array[b - 1], Array[a - 1] + Array[b - 1]);
Console.ReadKey();
}

catch (IndexOutOfRangeException ex2)
{
Console.WriteLine("Вы ввели слишком большое число, ведите пожалуйста числа от 1 до 10");
int a = Convert.ToInt16(Console.ReadLine());
int b = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("{0}+{1}={2}", Array[a - 1], Array[b - 1], Array[a - 1] + Array[b - 1]);
Console.ReadKey();
}
}
}
}

Илюфер 06 фев 2014 08:51
public static void Main()
{
int[] array = { 1, 2, 1, 4, 1, 6, 7, 8, 9, 10 };
try
{
Console.WriteLine("Number one: ");
int num1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Number two: ");
int num2 = Convert.ToInt32(Console.ReadLine());

int answer = array[num1] + array[num2];

Console.WriteLine(answer);

Console.ReadKey();
}

catch (Exception)
{
Console.WriteLine("Invalid value!");
}
}

Максим 03 фев 2014 17:46
Иван
---
Ниже в комментариях уже этот вопрос задавали, там и ответ.
Вопрос - Сергей 09 авг 2013 13:05
Ответ - Admin 09 авг 2013 15:59

Иван 03 фев 2014 13:17
А не объясните мне, что это за переменная ex, которую использует автор и некоторые пользователи при использовании исключений? мой VT все время тыкает мне в то, что она нигде не используется, так зачем она?

Илья 30 янв 2014 19:08
int[] numbers = { 2, 4, 5, 6, 7, 8, 9, 12, 17, 45 };
int sumMas;
string result = "";
Console.WriteLine("Введите порядковый номер элемента массива c 0 до 9 : ");
try
{
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите порядковый номер элемента массива с 0 до 9 : ");
int b = Convert.ToInt32(Console.ReadLine());
sumMas = numbers[a] + numbers[b];
result = "Получилось : " + sumMas;
}
catch (Exception ex)
{
result = "Ошибка. Вы неправильно ввели номер элемента.";
}
Console.WriteLine(result);
Console.ReadKey();

KRECER 29 янв 2014 12:53
static void Main(string[] args)
{
int[] numbers = {10, 15, 11, 30, 42, 23, 34, 53, 22, 13};
int sumArray, numArray1, numArray2;
Console.WriteLine("Введите порядковый номер массива: ");
try
{
numArray1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите порядковый номер массива: ");
numArray2 = Convert.ToInt32(Console.ReadLine());
sumArray = numbers[numArray1] + numbers[numArray2];
Console.WriteLine(sumArray);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
Console.ReadKey();
}

oborin 03 янв 2014 09:40
Легко.

Seva1986 28 дек 2013 00:03
Да, такие уведомления были бы удобны.

А по поводу подхода для новичков, согласен.

Максим 27 дек 2013 18:01
Seva1986
---
Могу уведомлять и об изменениях. Правда, не так часто я их вношу. А то, что не исчерпывающе - да, уроки таки для новичков, и я бы не хотел их спугнуть различными сложностями и углублениями. Сначала нужно освоить базу языка, а дальше всё пойдет как по маслу)

Seva1986 27 дек 2013 00:30
Тоже хотел спросить про throw... Но меня опередили. Вообще уроки мне нравятся кратко, сжато, с практикой, без воды, да не исчерпывающе, но это и не требуется для начинающих.

Один вопрос, когда выходит новая статья, то мне на мыло приходит уведомление, а если вы дополните статью уведомление будет? ну чтоб не мониторить постоянно все уроки (вдруг что то новое.)

Максим 27 дек 2013 00:28
gms
---
Есть оператор throw. Выкидывается исключение так:
throw new IndexOutOfRangeException();
throw new DivideByZeroException();

gms 26 дек 2013 17:43
А как выкидывать исключения, есть ли оператор throw, или это будет в отдельном уроке?

Максим 24 дек 2013 18:10
palazhevich
--
Потому что исключение выбрасывается на строке:
int d = mas[a - 1] + mas[b - 1]; // когда пытаемся доступиться к элементу массива

palazhevich 22 дек 2013 04:14
Почему первое исключение сообщает об ошибке сразу, а второе нет:
Ввести порядкoвый номер числа массива а=s
Ошибка. Вы ввели не число

Ввести порядкoвый номер числа массива а=11
Ввести порядкoвый номер числа массива b=5
Ошибка. Введите другие числа, меньше 10.


static void Main(string[] args)
{
int[] mas = new int[10];
Random r = new Random();
Console.WriteLine("Массив чисел:");
for (int i = 0; i < mas.Length; i++)
{
mas[i] = r.Next(1, 100);
Console.WriteLine(mas[i]);
}
do
{
string result = "";
try
{
Console.WriteLine();
Console.Write("Ввести порядкoвый номер числа массива а=");
int a = Convert.ToInt32(Console.ReadLine());
Console.Write("Ввести порядкoвый номер числа массива b=");
int b = Convert.ToInt32(Console.ReadLine());
int d = mas[a - 1] + mas[b - 1];
result = "Сумма чисел равна: " + d;
}
catch (FormatException ex)
{
result = "Ошибка. Вы ввели не число";
}
catch (IndexOutOfRangeException ex)
{
result = "Ошибка. Введите другие числа, меньше 10.";
}
Console.WriteLine(result);
Console.ReadKey();
}
while (true);
}

biglapa 09 ноя 2013 18:20
static void Main(string[] args)
{
int[] massiv = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int a, b;
try
{
a = Convert.ToInt32(Console.ReadLine());
b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(massiv[a]+massiv[b]);
}
catch (FormatException)
{
Console.WriteLine("Вы ввели не чиcло.");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Вы ввели слишком большое число.");
}
Console.ReadKey();
}

Максим 25 окт 2013 01:18
RomanS
---
Да, про это забыл сказать. int? решает данную проблему

RomanS 24 окт 2013 19:26
При попытке написать return null вылезает "Невозможно преобразовать null в "int", т.к. он является типом значения, не допускающим значения null".

Тем не менее спасибо - навело на мысль. Решается записью public static int? GetSum(int a, int b). Знак вопроса после int включает значение null в область значений типа int. После этого return null начинает работать.

Максим 24 окт 2013 14:18
RomanS
---
Возвращайте null

RomanS 24 окт 2013 13:37
Подскажите пожалуйста, если конструкция try - catch определена в функции, которая должна вернуть значение суммы [вида public static int GetSum(int a, int b) с возвращаемым int sum], то что должно возвращаться из блока catch в случае возникновения исключения?(делать return 0 - некрасиво, вернуть false нельзя, а при опускании return вылезает ошибка, что не все ветви кода возвращают значение)

DushaZ 22 сен 2013 09:25
class Program
{
static void Main(string[] args)
{
int[] c = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
try
{
Console.WriteLine("Введите первое число");
int a = Convert.ToInt32(Console.ReadLine()) - 1;
Console.WriteLine("Введите второе число");
int b = Convert.ToInt32(Console.ReadLine()) - 1;
int d = c[a] + c[b];
Console.WriteLine(d);
Console.ReadKey();
}
catch (FormatException)
{
Console.WriteLine("Введите ЧИСЛО!");
Console.ReadKey();
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Введите числа от одного до 1 до 10");
Console.ReadKey();
}
}
}

Максим 20 сен 2013 22:15
Doky
---
Какое решение? Задачи к этому уроку? Если да, то ниже hojiakbar сделал

Doky 20 сен 2013 21:59
Только начал изучать прог., не могу найти решение. Админ, выложите решение, пожалуйста. И, если не сложно, с краткими объяснениями!

Macsi21 30 авг 2013 16:33
Немного коряво получается весь код программы писать в блоке "тру" я думаю понятнее будет проверять так только соответствие типу данных а длину массива описать условием "иф"

hojiakbar 23 авг 2013 02:13
public static int SummElemet(int[] array, int a, int b)
{
int c = array[a] + array[b];
return c;
}
static void Main(string[] args)
{
string s="";
int a1,b1;
Console.WriteLine("1.Vvedite indeks elemena");
try
{
a1 = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("2.Vvedite indeks elemena");
b1 = Convert.ToInt16(Console.ReadLine());
int[] array1 = new int[10];
Random r = new Random();
for (int i = 0; i < array1.Length; i++)
{
array1[i] = r.Next(0, 55);
}
Console.WriteLine("Summa dvux elementov raven:" + SummElemet(array1, a1, b1));
Console.ReadKey();
}
catch (FormatException)
{
s = "Vi vveli ne chislo";
}
catch (IndexOutOfRangeException)
{
s = "Odin iz chisel vne ramkax massiva";
}
Console.WriteLine(s);
Console.ReadLine();

Максим 09 авг 2013 15:59
Сергей
---
Исключение представляет собою объект, и к нему мы имеем доступ через это имя. Использовать его не обязательно. С этого объекта мы можем получить, например, стандартное сообщение об ошибке (Message), или трассировку стека (StackTrace), которая поможет узнать место возникновения ошибки. В этом объекте хранится детальная информации об исключении

Сергей 09 авг 2013 13:05
для чего нам нужно имя исключения ? где используем его ?
catch (FormatException ex)

в данном случае "ex"

Максим 03 авг 2013 21:20
Коля
---
добавил дз

Коля 03 авг 2013 20:13
Очень полезный и интересный урок! Спасибо. Хотелось бы домашнее задание к нему

Максим 15 июл 2013 13:04
Илья
----
Это только самые распространенные, всех их очень много, есть даже возможность создавать свои собственные исключения

Илья 15 июл 2013 10:57

Exception – базовый тип всех исключений. Блок catch, в котором указан тип Exception будет «ловить» все исключения.
FormatException – некорректный формат операнда или аргумента (при передачи в метод).
NullReferenceException - В экземпляре объекта не задана ссылка на объект, объект не создан
IndexOutOfRangeException – индекс вне рамках коллекции
FileNotFoundException – файл не найден.
DivideByZeroException – деление на ноль

Это все виды исключений или только избранные?


Добавить комментарий:

Имя (обязат.)
E-mail (обязат., не публикуется)


Для вставки ваших программ пользуйтесь кнопкой "исходный код"
Вёрстка сайта с нуля

Уникальный Видеокурс!

"Научись верстать сайты и заработай на этом!"

Получить видеокурс

Подпишись на курс по программированию, и узнавай первым о новых уроках!

RSS подписка Страничка Вконтакте Мы в Twitter

Ошибка в тексте? Выделите ее мышкой и нажмите Ctrl+Enter
Поблагодарить автора: Номер карты (ПриватБанк)
5168 7572 4170 8660
WebMoney
R372544961915 U685637142028 Z999792764387
Наверх
Система Orphus