Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> try catch finally вызов исключения, и ссылка 
:(
    Опции темы
Yagmort
Дата 10.2.2011, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Кто сможет обясните для чего нужен операвтор trohw в целом? Как можно принудительно вызвать исключение в блоке try, чтобы было правильно, т.к. я использовал такую конструкцию:

Код

try
{
 int k=Convert.ToInt32('d'); 
}
catch (Exception e)// как узнать, какое свойство, или метод тут присваивать заместо Exception, в каких ситтуациях какой ?
{
string k=Convert.ToString(e);
}
 

И как в блоке cath узнать какая строка вызвала исключение и каков сам текст ошибки, положить ошибку и номер строки в переменную строкового типа ?
PM MAIL   Вверх
jonie
Дата 10.2.2011, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118





--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Yagmort
Дата 10.2.2011, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Разобралсо вроде сам с оператором throw

Это сообщение отредактировал(а) Yagmort - 10.2.2011, 13:37
PM MAIL   Вверх
tartar
Дата 10.2.2011, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 1.12.2010

Репутация: нет
Всего: нет



Да, он будет обрабатываться в catch,
если же ты используешь его в catch оно уйдетвыше на уровень.


то есть у тебя 


void a()
{
try 
{
throw new...
}
catch(Exception ex)
{
  здесь ты можешь обработать или throw new exception
}
}

void b()
{
 try 
{
 a();
}
catch(Exception ex)
{
  если в кэтче а ты запускаешь новое исключение,
 то и здесь ты попадешь сюда, иначе исключение потеряется в
 кэтче метода а
}
 
}


PM MAIL   Вверх
Yagmort
Дата 10.2.2011, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(tartar @ 10.2.2011,  13:38)
Да, он будет обрабатываться в catch,
если же ты используешь его в catch оно уйдетвыше на уровень.


то есть у тебя 


void a()
{
try 
{
throw new...
}
catch(Exception ex)
{
  здесь ты можешь обработать или throw new exception
}
}

void b()
{
 try 
{
 a();
}
catch(Exception ex)
{
  если в кэтче а ты запускаешь новое исключение,
 то и здесь ты попадешь сюда, иначе исключение потеряется в
 кэтче метода а
}
 
}

Понял, что throw тупо вызывает новое исключение, которое я ему задаю, и он выдает мне сообщение, от того, какое исключение я ему передал. А если используется блок такой 

try
{
int a=Convert.ToString("sss"),
     b=Convert.ToString("sss"),
     c=Convert.ToString("sss");

catch (InvalidCastException ice)
{
//как тут узнать что вызвало исключение ??
//например хочу так if (a...) {MessageBox.Show("a вызвало исключение")}
//if (b...) {MessageBox.Show("б вызвало исключение")}
//if (с...) {MessageBox.Show("ц вызвало исключение")}
}

и чтоб программа остановилась в куске catch оюязательно

Это сообщение отредактировал(а) Yagmort - 10.2.2011, 13:51
PM MAIL   Вверх
Экскалупатор
Дата 10.2.2011, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



в ексцепшене есть свойство "сообщение" в котором идет описание ошибки. если ты сам делаешь исключение то задай в сообщении то что тебе нужно.
PM MAIL ICQ   Вверх
Yagmort
Дата 10.2.2011, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(Экскалупатор @ 10.2.2011,  14:06)
в ексцепшене есть свойство "сообщение" в котором идет описание ошибки. если ты сам делаешь исключение то задай в сообщении то что тебе нужно.

А если у меня идет внутри блока
try 
{
    int
     a=Greys(b), // этот создает исключение не зависимо от меня.
     if (a==2)
      c=Convert.ToString("sss");// тут я создаю сам
}
PM MAIL   Вверх
Экскалупатор
Дата 10.2.2011, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



поставь брекпоинт на cath и в дебагере посмотри что он тебе говорит. там есть вся информация.

Добавлено через 1 минуту и 20 секунд
Цитата(Yagmort @  10.2.2011,  13:22 Найти цитируемый пост)
      c=Convert.ToString("sss");// тут я создаю сам

тут ты тоже не сам создаешь. сам ты создаешь когда пишешь throw new ...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.