Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

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

19.03.2013, 11:11. Просмотров 397. Ответов 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 пустой ничо в нем нету, определяется просто, я так понял для вылета, как метка, чтобы можно было понять какого типа произошла ошибка хз. так это или его нужно как, то еще и заполнить? Ну можно конечно инициализировать объект как то но, что это нам даст?

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

п.с. Да скорее всего правильно ведь это ж сам гуру Страуструп код писал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2013, 11:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка исключений в классах для пользовательских типов (C++):

Шаблон для пользовательских типов данных - C++
В общем имееются две функции. Одна принимает тип данных string другая char. Функции выполняют одну и ту же задачу. Вопрос как сделать...

Возможно ли переопределение операторов для пользовательских типов? - C++
Собственно преследуемая цель: Определить свой тип int - myint. Переопределить для него операторы как надо. Ну, например, надо мне при...

Как работать с массивами в пользовательских классах? - C++
есть программа для записи в класс Auto, но она ругается если я хочу записать в массив следующим методом: #include &lt;iostream&gt; using...

Один блок catch для двух типов исключений порожденных от одного класса - C++
Товагищи!! Имеется задача с книги С. Прата с++11. Не могу реализовать следующее : Вот к чему пришел #include &lt;iostream&gt; #include...

Обработка исключений для new - C++
Всем привет! Вопрос следующий. Когда функция new не может выделить память, то генериться исключение bad_alloc. Допустим есть следующий...

Обработка исключений с пмощью структурированной обработки исключений - C++
Есть функция, которая определенным образом работает с файлами,но при работе с файлами &quot;не подходящего&quot; типа вызывается необработанное...

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

Цитата Сообщение от ninja2 Посмотреть сообщение
Ну можно конечно инициализировать объект как то но, что это нам даст?
исключения служат для передачи информации об ошибке с места её возникновения в место её обработки
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2013, 11:27
Привет! Вот еще темы с ответами:

Приведение пользовательских типов - C++
#include &lt;iostream&gt; using namespace std; class cl { friend cl operator+(cl&amp; s2); public: cl(int d = 0, int c = 0) { ...

Преобразование пользовательских типов - C++
Добрый день. Суть проблемы такова. Есть 2 класса. Преобразовать через оператор получается. А через конструктор нет. Причем ошибка...

Создание пользовательских типов - C++
помогите пожалуйста написать программу. (необходимо написать с применением операторов &quot;printf/scanf&quot;); Сведения об экзамене содержат...

Преобразование пользовательских типов - C++
Здравствуйте. Помогите с одним вопросом, это пример из книги Лафоре ООП С++, не могу разобраться как работают функции int getHrs() const ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.