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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.81
Yafik
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 3
#1

Механизмы обработки исключений / Нужен пример - C++

19.05.2012, 21:06. Просмотров 4374. Ответов 21
Метки нет (Все метки)

Пишу курсовую работу на тему, аналогичную заголовку этой темы. Проблема в том, что у нас убрали пары по программированию во втором семестре. Поэтому мы так и не знаем толком ничего. Я бы хотел попросить уважаемых форумчан о помощи: нет ли у кого простенькой программы которая использовала бы исключения (нужно для практической части курсовой). В практической части мне нужно сравнить программу без использования исключений и с их присутствием. Буду очень рад любой помощи. Для практической части мне подойдёт самый что ни на есть простой пример. Может у кого-нибудь, что-нибудь да есть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2012, 21:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Механизмы обработки исключений / Нужен пример (C++):

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

Создание обработки исключений на даты - C++
Доброго времени суток! Как создать обработку исключительных ситуаций на неверно введенные даты?

Mingw и отключение обработки исключений - C++
Даю Mingw флаги nostdlib и fno-exceptions, скармливаю программу из одной строчки MessageBoxA(NULL,"","",MB_OK);, все компилируется. Сую эту...

Как лучше построить механизм обработки ошибок на основе исключений? - C++
Доброго дня! Я сейчас разрабатываю проект и хочу спросить: как лучше построить механизм обработки ошибок на основе исключений? Есть как...

Привести пример обработки и преобразования матриц, используя динамическое выделение памяти - C++
Привести пример пример реализации алгоритма обработки и преобразования матриц, используя динамическое выделение памяти и технику работы с...

Нужен пример классов - C++
Привести пример классов с наследованием и доступом к компонентам их экземпляров через указатели на базовый и производный классы.

21
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
05.04.2013, 23:19 #16
Как и исключение...

С текстового поля получается данные, которые конвертятЬся в int если неудачно исключение - типичная ситуация ...
1
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
05.04.2013, 23:26 #17
Ну, как сказать... Это больше философский вопрос: что считать ошибкой, исключением и нормальным результатом. Есть вообще exception-driven языки вроде Питона, где даже выход из цикла (в том числе нормальный) выполняется с помощью исключений.
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
05.04.2013, 23:30 #18
Ну исключение != ошибка ...
Исключение может быть вполне нормальным результатом- например исключение при получении ответа сервера с кодом 302 - "перенаправление"
0
KoNstuNN
2 / 2 / 0
Регистрация: 18.02.2012
Сообщений: 21
06.04.2013, 17:40 #19
Чтобы уважаемым профессионалам не гадать на кофейной гуще и не уходить в философию... ;-)
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
int main()
{
    /* bla-bla-bla  */
    try
    {
        scanf("%s", buf);
        custom_surname_count = StrToInt(AnsiString(buf));
 
        for (int i=0; i<custom_surname_count; i++)
        {
            printf("Input surname: ");
            scanf("%s", buf);
            surname_buf = AnsiString(buf);
            printf("Input date in format 'dd.mm.yyyy': ");
            scanf("%s", buf);
            p = strtok(buf, ".");
            day = StrToInt(AnsiString(p));
            p = strtok(NULL, ".");
            month = StrToInt(AnsiString(p));
            p = strtok(NULL, ".");
            year = StrToInt(AnsiString(p));
            Bday.insert(make_pair(AnsiString(surname_buf), TDateTime(year,month,day)));
        }
 
        //display full list
        printf("List:\n");
        for (it=Bday.begin(); it!=Bday.end(); ++it)
        {
            printf("%s ", (it->first).c_str());
            printf("%s\n", ((it->second).FormatString("dd.mm.yyyy")).c_str());
        }
        
        //start searching
        printf("Input surname to search: ");
        scanf("%s", buf);
 
        //searching
        printf("Searching...");
        it = Bday.find(AnsiString(buf));
        printf("Completed.\n");
 
        //showing results
        if (it!=Bday.end())
        {
            printf("Results:\n");
            printf("%s ", (it->first).c_str());
            printf("%s\n", ((it->second).FormatString("dd.mm.yyyy")).c_str());
        }
        else
        {
            printf("'%s' not found\n", buf);
        }
    }
    catch(const Exception& ex)
    {
        printf("Exception: %s\n", ex.Message.c_str());
        printf("The program will be terminated.\n");
    }
    system("pause");
    return 0;
}
Сам принудительно никаких исключений не кидаю - поручил это умным методам классов AnsiString, TDateTime и пр.
Больше всего мне, наверное, подходит идея Avazart'а про цикл...
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
06.04.2013, 17:43 #20
Цитата Сообщение от KoNstuNN Посмотреть сообщение
Вот мой код:
printf/scanf + VCL классы - криво ...
А главное ввод через одно место буфер .

Используй iostream он хотя бы VCL более или менее совместим. (точнее VCL c ним )
0
KoNstuNN
2 / 2 / 0
Регистрация: 18.02.2012
Сообщений: 21
06.04.2013, 17:53 #21
Цитата Сообщение от Avazart Посмотреть сообщение
printf/scanf + VCL классы - криво ...
А главное ввод через одно место буфер .

Используй iostream он хотя бы VCL более или менее совместим. (точнее VCL c ним )
Я догадывался, что криво. Но iostream я еще не изучил как следует. Еще не рассказывали про это на лекциях. Это лабораторная. В прошлом семестре нам вообще запрещали почему-то пользоваться потоками ввода\вывода
...Хотя у меня теперь есть повод изучить это самостоятельно. :-)
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
06.04.2013, 17:58 #22
Цитата Сообщение от KoNstuNN Посмотреть сообщение
огадывался, что криво. Но iostream я еще не изучил как следует. Еще не рассказывали про это на лекциях. Это лабораторная. В прошлом семестре нам вообще запрещали почему-то пользоваться потоками ввода\вывода
...Хотя у меня теперь есть повод изучить это самостоятельно. :-)
printf/scanf это Си стиль, а не С++ ( в С++ потоки)
Кроме того в консольных приложениях практически нет смысла использовать VCL.

Кроме того потоки i/o могут как "код состояния" так генерить исключения.

Добавлено через 1 минуту
Цитата Сообщение от KoNstuNN Посмотреть сообщение
Еще не рассказывали про это на лекциях. Это лабораторная. В прошлом семестре нам вообще запрещали почему-то пользоваться потоками ввода\вывода
Лучше б VCL отложили на потом ...
0
06.04.2013, 17:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2013, 17:58
Привет! Вот еще темы с ответами:

Нужен пример с массивами - C++
Не могу догнать, зачем нужен массив конкретно.

Нужен пример цикла while - C++
Помогите решить задачку или хотябы обьясните как делать а то сижу и думаю как это так реализовать

Нужен пример хэширования - C++
Здравствуйте! Ни как не могу понять хэширование,если не трудно, то напишите какие нибудь простейшие примеры реализации. Заранее благодарю!

Нужен пример класса - C++
Привести пример класса для работы с комплексными числами и содержащего перегруженную операцию для вычитания комплексных чисел.


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

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

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