Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Exception внутри catch / 11 сообщений из 11, страница 1 из 1
08.12.2006, 13:48
    #34186193
egorovshura
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
Всем привет.

У меня такой вопрос. А могу ли я внутри catch-блока выполнять потенциально опасный с точки зрения эксепшенов код. Например так:

try
{
DoSometing();
}
catch(ESomeException & ex)
{

NotifyUser(); // может генерить эксепшен

}

Я знаю, что следующий код типа

try
{
}
catch(ESomeException & ex)
{
throw ESomeOtherException();
}

или обыкновенный rethrow нормально работает и абсолютно легален. Но дело в том, что код который приведен вначала у меня почему-то не фурычит. В среде (VS2005) в режиме отладки я вылетаю где-то внутри NotifyUser(), и все, дальше управление на внешние обработчики эксепшенов не передается. Может кто знает об этом или сам сталкивался.

Заранее спасибо.
...
Рейтинг: 0 / 0
08.12.2006, 13:58
    #34186240
efgty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
Код: plaintext
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.
try
{

}
catch(...)
{
     try
     {

     }
     catch(...)
     {
        try
        {
         }
         catch(...)
         {
            try
            {
            }
            catch(...)
            {

             }
          }

     }
}


...
Рейтинг: 0 / 0
08.12.2006, 13:59
    #34186245
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
Можно еще один try вложить. А у тебя снаружи тоже обработчики стоят?
...
Рейтинг: 0 / 0
08.12.2006, 14:22
    #34186359
egorovshura
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
Да снаружи стоит общий обработчик, который все ловит.
...
Рейтинг: 0 / 0
08.12.2006, 14:28
    #34186380
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
egorovshuraДа снаружи стоит общий обработчик, который все ловит.

Значит ты где-то ошибся. Такой код работатет:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#include <stdio.h>

int main () {

    try {
	try{
	    throw  5 ;
	} catch (int i) {
	    printf("%d\n", i);
	    throw  7 ;
	}
    } catch (int i) {
	printf("%d\n", i);
    }
    
    return  0 ;
}

...
Рейтинг: 0 / 0
08.12.2006, 14:30
    #34186389
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
Кстати, в режиме отладки в delphi, вроде, тоже ексепшины не отлавливаются. Может это особенность отладочного режима.
...
Рейтинг: 0 / 0
08.12.2006, 15:13
    #34186550
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
AkhКстати, в режиме отладки в delphi, вроде, тоже ексепшины не отлавливаются. Может это особенность отладочного режима.

Это задается в настройках среды
...
Рейтинг: 0 / 0
08.12.2006, 15:28
    #34186610
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
Gluk (Kazan) AkhКстати, в режиме отладки в delphi, вроде, тоже ексепшины не отлавливаются. Может это особенность отладочного режима.

Это задается в настройках среды

Значит, настроить надо.
...
Рейтинг: 0 / 0
08.12.2006, 15:45
    #34186685
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
Akh Gluk (Kazan) AkhКстати, в режиме отладки в delphi, вроде, тоже ексепшины не отлавливаются. Может это особенность отладочного режима.

Это задается в настройках среды

Значит, настроить надо.

Кому ???
...
Рейтинг: 0 / 0
08.12.2006, 16:05
    #34186761
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
Gluk (Kazan) Akh Gluk (Kazan) AkhКстати, в режиме отладки в delphi, вроде, тоже ексепшины не отлавливаются. Может это особенность отладочного режима.

Это задается в настройках среды

Значит, настроить надо.

Кому ???

Глюк, ну не тебе же. ;)
...
Рейтинг: 0 / 0
08.12.2006, 16:15
    #34186800
egorovshura
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception внутри catch
Все кажись разобрался. Все нормально работает. Это просто у меня внутри вызывалась функция из сторонней библиотеки, а там внутри много раз подряд эксепшен один и тот же вылетал. Вот я и решил, что что-то не то. Всем спасибо.
Насчет Delphi там можно настроить какие эксепшены отладчик будет ловить, а какие пропускать. Настраивается вроде Tools/Environment Options/Debugger или что-то в этом роде, дельфи нету под рукой.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Exception внутри catch / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]