Форум программистов, компьютерный форум CyberForum.ru

Обработка исключений в классах для пользовательских типов - C++

Восстановить пароль Регистрация
 
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
19.03.2013, 11:11     Обработка исключений в классах для пользовательских типов #1
Здорова господа!
Запустил токо класс String тестю и тут у меня вылетело исключение выход за пределы индекса,
и программа тупо аварийно остановилась
В классе String, Range это вложенный класс для исключения выход за пределы индекса.
я попробовал обработать это исключение и записал код:
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
try
{
  //...
  vuletaet icklyuchenie Range
  //...
}
catch(String::Range& a)
{
  cout <<"Crabotalo Range"<<endl;
}
Вроде все сработало при выходе за пределы индекса catch(String::Range& a) ловит исключение и выводит строку.

Интересно правильно ли я понимаю, что бы создать другие исключения в классе, то просто добавляем другой новый вложенный класс?
Тада выходит, что один пользовательский класс, для одного исключения, второй для другого.

По примеру из книги class Range пустой ничо в нем нету, определяется просто, я так понял для вылета, как метка, чтобы можно было понять какого типа произошла ошибка хз. так это или его нужно как, то еще и заполнить? Ну можно конечно инициализировать объект как то но, что это нам даст?

Ну и вообще правильно ли так обрабатывать исключения , новый класс - новое исключение?

п.с. Да скорее всего правильно ведь это ж сам гуру Страуструп код писал
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2013, 11:11     Обработка исключений в классах для пользовательских типов
Посмотрите здесь:

C++ Обработка исключений для new
C++ Преобразование пользовательских типов
Приведение пользовательских типов C++
C++ Создание пользовательских типов
C++ Преобразование пользовательских типов
Шаблон для пользовательских типов данных C++
C++ Один блок catch для двух типов исключений порожденных от одного класса
Возможно ли переопределение операторов для пользовательских типов? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.03.2013, 11:27     Обработка исключений в классах для пользовательских типов #2
Цитата Сообщение от ninja2 Посмотреть сообщение
Интересно правильно ли я понимаю, что бы создать другие исключения в классе, то просто добавляем другой новый вложенный класс?
да, но необязательно вложенный
Цитата Сообщение от ninja2 Посмотреть сообщение
По примеру из книги class Range пустой ничо в нем нету, определяется просто, я так понял для вылета, как метка, чтобы можно было понять какого типа произошла ошибка хз. так это или его нужно как, то еще и заполнить?
можно и заполнить, это дело добровольное, классы исключений ничем не отличаются от обычных классов

Цитата Сообщение от ninja2 Посмотреть сообщение
Ну можно конечно инициализировать объект как то но, что это нам даст?
исключения служат для передачи информации об ошибке с места её возникновения в место её обработки
Yandex
Объявления
19.03.2013, 11:27     Обработка исключений в классах для пользовательских типов
Ответ Создать тему
Опции темы

Текущее время: 20:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru