Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
РомаМ
0 / 0 / 2
Регистрация: 08.07.2013
Сообщений: 56
#1

Объясните устройство блока try-catch

02.04.2014, 10:42. Просмотров 349. Ответов 7
Метки нет (Все метки)

C#
1
catch (FormatException ex)
Ничего сложного в этом операторе не вижу, да вот только понять не могу, что за "ех" такое. Во всех объяснениях которые прочитал(штук 7), пишет [имя] и пропускают, как будто это само собой разумеющаяся вещь. Объясните пожалуйста. Причем эта "ех" нигде в коде больше не используется , да нигде и не создается...

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 10:42
Ответы с готовыми решениями:

Разбор блока catch (исключения)
Задание звучит так: Даны две функции: double hmean(double a, double b)...

JUnit тестирование блока catch
Как написать тесты к методу чтобы покрывались блоки catch () и остальные...

Почему нельзя использовать переменную из блока try/catch
Вечер добрый. import org.json.simple.JSONObject; import...

Передача исключения из одного catch-блока в другой
Всем привет! Начал тут изучать исключения в С++, хотел бы кое-что прояснить....

Объясните пожалуйста, как работать с try catch и throw
как следует работать с try catch и throw. никак не могу понять как применить их...

7
valera_21
366 / 352 / 91
Регистрация: 05.01.2010
Сообщений: 1,461
Завершенные тесты: 5
02.04.2014, 10:46 #2
РомаМ, объект, в котором дополнительная информация об исключении, например, текст исключения: ex.Message. список свойств можно посмотреть тут
0
insite2012
Модератор
Эксперт .NET
4827 / 3787 / 1089
Регистрация: 12.10.2013
Сообщений: 11,064
Записей в блоге: 2
02.04.2014, 10:46 #3
Это экземпляр исключения FormatException. Из него можно извлечь информацию об исключении.
1
Metall_Version
2118 / 1255 / 516
Регистрация: 04.03.2014
Сообщений: 4,094
Завершенные тесты: 2
02.04.2014, 10:58 #4
Цитата Сообщение от РомаМ Посмотреть сообщение
да нигде и не создается...
в этой строке как раз и создается ) можно дальше использовать (в в теле катча) для предоставления данных о исключении
1
nio
5951 / 3357 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
02.04.2014, 11:27 #5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
try
{
   //код
}
catch (FormatException ex)//тут указывается какого типа исключение обрабатывает данный catch, ех - это экземпляр этого класса, который содержит информацию об исключения
{
    //тут можно использовать данные из ex в зависимости от того, какого он типа
    
   //самое банальное уже подсказали 
   Console.WriteLine(ex.Message);
   //но при разных типах исключений, из ex можно извлечь и другую полезную инфу.
   // ex - всего лишь имя переменной, т.е. её можно назвать как угодно
}
1
kolorotur
Эксперт .NET
10007 / 8405 / 2063
Регистрация: 17.09.2011
Сообщений: 14,470
02.04.2014, 11:51 #6
Цитата Сообщение от РомаМ Посмотреть сообщение
понять не могу, что за "ех" такое.
Если вы ловите исключение, значит его кто-то бросает, логично?
Вот ex — это и есть ссылка на брошенное исключение:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Foo()
{
   try
   {
      Bar();
   }
   catch (Exception youCanPutWhateverNameYouLikeHere) // Это ссылка на исключение, созданное в первой строке метода Bar
   {
   }
}
 
void Bar()
{
   Exception exception = new Exception("Kaboom!");
   throw exception;
}
}
1
Евгений В
875 / 644 / 128
Регистрация: 01.03.2010
Сообщений: 1,209
02.04.2014, 11:51 #7
РомаМ,
Можно просто ловить все исключения подряд (что, правда, не рекомендуется)
C#
1
2
3
4
5
6
            try
            { }
            catch 
            { 
                
            }
Можно ловить конкретное исключение
C#
1
2
3
4
5
6
            try
            { }
            catch (ArgumentException)
            { 
                
            }
А, можно ловить конкретное исключение и работать с ним через имя экземпляра.
Т.к. ArgumentException - это класс, ничто не мешает нам сделать его экземпляр(объект) ArgumentException argEx
C#
1
2
3
4
5
6
7
            try
            { }
            catch (ArgumentException argEx)
            { 
                argEx // далее нажмите точку, и студия выдаст список всех доступных методов и свойств этого                  
                        //экземпляра  argEx типа ArgumentException
            }
1
РомаМ
0 / 0 / 2
Регистрация: 08.07.2013
Сообщений: 56
02.04.2014, 12:32  [ТС] #8
Спасибо всем )
0
02.04.2014, 12:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2014, 12:32

Нет доступа к базе данных. Пишет уведомление из блока catch
Собственно, пытаюсь показать в лейбле данные из таблицы, но пишет ошибку из...

Объясните работу блока ADVANCE в примере SEIZEMODE
Здравствуйте. Не могу понять работу блока ADVANCE в примере SEIZEMODE. ...

Как получить устройство, к которому приатачено ваше устройство в стеке устройств
Пишу минипорт драйвер для usb аудио устройства. Для создания устройства...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru