Опрос
Опрос Тема Опроса: как живется с такой...
bars   pie

хорошо    
  0 (0.0%)
плохо    
  4 (30.8%)
регулярно    
  2 (15.4%)
пустяки, дело житейское    
  2 (15.4%)
а в чем суть-то?    
  5 (38.5%)
нам все равно    
  0 (0.0%)




Всего голосов: 13
« Последняя модификация: kms : 04. Сентября 2007 :: 16:51 »
Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Об отработке исключений в наследниках ТП (число прочтений - 7107 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Об отработке исключений в наследниках ТП
Ответ #15 - 09. Ноября 2007 :: 02:30
Печать  
kms писал(а) 08. Ноября 2007 :: 17:35:
Цитата:
- какое-то исключение должно быть в любом случае, а в твоем варианте исключение может быть пропущено Печаль, что соответственно может привести к различным результатам, в т.ч. и фатальным.

Не понял.
Куда и какое исключение может быть пропущено?

Насколько я понял, из вышенаписанного кода
Код
Выбрать все
if (CBLModule::GetExecutedModule())
CBLModule::RaiseExtRuntimeError(copy, mmRedErr); 


У тебя нет отработки для случая else, т.е. нету выброса исключения Печаль, т.е. в этом случае 1С++ захромает дальше, что может привести к различным неприятным последствиям.
Или ты не весь код указал? Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Об отработке исключений в наследниках ТП
Ответ #16 - 09. Ноября 2007 :: 12:00
Печать  
artbear писал(а) 09. Ноября 2007 :: 02:30:
Или ты не весь код указал? Печаль

Не весь, каюсь.
В оригинале у меня было написано
Код
Выбрать все
	if (CBLModule::GetExecutedModule())
		CBLModule::RaiseExtRuntimeError((LPCSTR)cs, mmRedErr);
	else
		GetBkEndUI()->DoMessageLine((LPCSTR)cs, mmRedErr);
 



Моя идея была в том, что если нет модуля, то RaiseExtRuntimeError не нужен, некому прерывать выполнение.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать