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

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

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

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

}

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

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

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

Заранее спасибо.
...
Рейтинг: 0 / 0
Exception внутри catch
    #34186240
efgty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
Exception внутри catch
    #34186245
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще один try вложить. А у тебя снаружи тоже обработчики стоят?
...
Рейтинг: 0 / 0
Exception внутри catch
    #34186359
egorovshura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да снаружи стоит общий обработчик, который все ловит.
...
Рейтинг: 0 / 0
Exception внутри catch
    #34186380
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Exception внутри catch
    #34186389
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, в режиме отладки в delphi, вроде, тоже ексепшины не отлавливаются. Может это особенность отладочного режима.
...
Рейтинг: 0 / 0
Exception внутри catch
    #34186550
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhКстати, в режиме отладки в delphi, вроде, тоже ексепшины не отлавливаются. Может это особенность отладочного режима.

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

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

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

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

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

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

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

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

Кому ???

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


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