![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| And234 |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Среда VC6
для примера консоль.
и два класса 1 для обрабоки
2 класс исключения
компилится и работает ОК но если обозначаю класс исключения в Main() как
возникает ошибка "abnormal program termination". Как я могу исправить, с условием обработки исключения этим классом. Думаю проблема в типах функций. |
||||||||
|
|||||||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Где код, в котором непосредственно генерится исключение?
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| blackofe |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 29.11.2005 Репутация: 4 Всего: 4 |
And234
а почему не так?
я немножко переделал программу. мне такой вариант нравится больше:
выдает результат: catch main! error: msgerr catch 2 Press any key to continue Это сообщение отредактировал(а) blackofe - 7.12.2005, 18:30 |
||||
|
|||||
| And234 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
blackofe
Огромное спасибо. То что нужно. Очень волнует один вопрос.
|
|||
|
||||
| blackofe |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 29.11.2005 Репутация: 4 Всего: 4 |
strdup(perrmsg); аллокирует новую память, копирует туда строку perrmsg и помещает указатель на нее в msgerr. ясное дело, что за собой надо подчищать хотя, наверное, можно обойтись и без аллокации:
но мне этот вариант нравится меньше. не люблю, когда изнутри объекта я ссылаюсь на бог весть что. в нашем случае, когда аргументом конструктора Exeptt является константа, оно как бы нестрашно. но если передается указатель на строку, которая где-нибудь по пути удалится - это у меня вызывает не очень приятные ощущения. ;) Это сообщение отредактировал(а) blackofe - 7.12.2005, 20:09 |
||||||
|
|||||||
| blackofe |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 29.11.2005 Репутация: 4 Всего: 4 |
вообще я предпочитаю работать со string'ом. вот, к примеру, мой универсальный класс исключений.
когда я создаю класс, в котором могут генериться исключения, я делаю nested класс:
мне остается только имплементировать функцию Description() и я allset.
теперь я могу ловить исключения, причем избирательно. могу как A::Exception, а могу как более общий ZException:
Это сообщение отредактировал(а) blackofe - 7.12.2005, 20:47 |
||||||||
|
|||||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |