Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Исключение перехватывает не тот catch  (Прочитано 3500 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ezus
Опытный

il
Offline Offline

« : 01-04-2015 11:05 » new

Еще раз добрый день.
Великий пуассоновский поток: то месяцами все идет гладко, то проблема за проблемой.
Снова обращаюсь за помощью.

Код:
try 
{
rb = procGateLogic( gate );
}
catch(CString &str)
{
gMsgr.newMsg(MsgLvlErr,str);
throw 901;
}
catch(int ei)
{
CString sss; sss.Format("Exception [%d]",ei);
gMsgr.newMsg(MsgLvlErr,sss);
throw 902;   
}
catch(CException &e)
{
char msg[1000];
e.GetErrorMessage(msg,1000);
sss.Format("Exception (Throw-A2c) msg='%s' procGate: %s", msg, z2To(gate));   
throw 903;   
}
catch(...)
{
CString sss; sss.Format("Exception a procGate: tree:'%s' gate: '%s' (Throw-A2c)",gate->_tree->toStringTreeId(), gate->_code);
gMsgr.newMsg(MsgLvlErr,sss);
sss.Format("Exception (Throw-A2d) procGate: %s", z2To(gate));   
gZsDeb.write2logLn(sss);
throw 909;   
}

Код:
	if( _poolCurr == NULL )
{
CString msg = "Error: No free memory";
gMsgr.newMsg( MsgLvlErr, msg );
throw msg;
}


Я не понимаю почему
Код:
catch(CString &str)
не перехватывает
Код:
throw msg;
,
а обработку пытается выполнить
Код:
catch(CException &e) 
. Естественно безуспешно.

Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines