24 / 24 / 11
Регистрация: 01.06.2014
Сообщений: 135

Не обрабатывается исключение

04.06.2015, 14:46. Показов 3973. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно есть, который действует крайне непредсказуемо:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
static void Main(string[] args)
        {
            try
            {
                try
                {
                    throw new ArgumentException();
                }
                catch (ArgumentException)
                {
                    Console.WriteLine("1");
                    throw new FormatException();
                }
                finally
                {
                    Console.WriteLine("2");
                    throw new DivideByZeroException();
                }
            }
            catch (DivideByZeroException e)
            {
                Console.WriteLine("3");
            }
            catch (FormatException e)
            {
                Console.WriteLine("4");
            }
            finally
            {
                Console.WriteLine("5");
            }
            Console.ReadKey();
        }
Все прекрасно, как кажется на первый взгляд, все исключения обрабатываются, но.. На самом деле, "4" не выводится, можно предположить, что среда не обрабатывает исключение, однако, если убрать
C#
1
2
3
4
catch (FormatException e)
            {
                Console.WriteLine("4");
            }
Среда сразу же выдаст Unhandled Exception, что говорит о том, что исключение не было обработано, но как оно было обработано ранее, если операторы внутри catch не выполнялись?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.06.2015, 14:46
Ответы с готовыми решениями:

Не обрабатывается исключение
если ввожу 0 в одно из полей то ошибки нету, а она должна быть что не так в коде, для букв работаетprivate void button2_Click(object...

Не обрабатывается исключение try-catch
Помогите пожалуйста с задачей. Вот код: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Не обрабатывается событие
Доброе время суток. Есть объект NotifyIcon. Создали обработчик события DoubleClick (см. initTray) на ni_DoubleClick. Но этот...

3
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
04.06.2015, 14:52
Лучший ответ Сообщение было отмечено PVD как решение

Решение

PVD, Ну вроде все логично.
Когда вызывается throw new FormatException(); система видит, что для этого исключения есть catch() и переходит к нему. Но перед тем как к нему перейти, нужно выполнить finally. Но в finally возникает новое исключение, которое "перекрывает" предыдущее. И поэтому код переходит в блок catch (DivideByZeroException e)
1
24 / 24 / 11
Регистрация: 01.06.2014
Сообщений: 135
04.06.2015, 14:56  [ТС]
Storm23, да, вроде, но уберите
C#
1
2
3
4
catch (FormatException e)
            {
                Console.WriteLine("4");
            }
И получите исключения типа FormatException.

Добавлено через 44 секунды
хм...

Добавлено через 1 минуту
Я понял, спасибо
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
04.06.2015, 15:04
PVD, Обратите внимание на то, что если возникает необработанное исключение (то есть выше по стеку нет ни одного catch который может его словить), то блок finally не вызывается. Приложение останавливается прямо в месте возникновения исключения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.06.2015, 15:04
Помогаю со студенческими работами здесь

Неправильно обрабатывается null
Здравствуйте! Есть строка кода: c49_USPD.Value = $"{record.c30.Value.ToString() ?? string.Empty} (Системы и технологии,...

Не обрабатывается null значение
Добрый день, Есть строка if (dataRow.ItemArray == null) return; которая проверяет на null. Но во время работы выдаёт ошибку. И я не...

Не обрабатывается последнее слово
Подскажите, почему не обрабатывается последнее слово и как исправить. Спасибо using System; using System.Collections.Generic; ...

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

Разобраться с args[], файл для парсинга не обрабатывается
Вот небольшой парсер, никак не могу догнать что ему не нравится. Выдает что строка имела неверный формат ... public static...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru