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

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

Войти
Регистрация
Восстановить пароль
 
Dantekiberg
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 8
#1

Обработка исключительных ситуаций! - C++

22.01.2014, 13:12. Просмотров 468. Ответов 9
Метки нет (Все метки)

Составьте программу на языке С++. Обрабатывающую исключительную ситуацию, которая может возникнуть в ходе выполнения программы.

Выведите на экран значение функции для некоторого диапазона значений аргумента х. Коэффициенты a, b, c, d и диапазон значений аргумента вводятся с клавиатуры.

При организации ввода/вывода должен использоваться механизм для отлова исключений типа.
Название: Снимок.JPG
Просмотров: 71

Размер: 8.8 Кб

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

Обработка исключительных ситуаций - C++
Код программы,Что та не робит помогите #include "stdafx.h" #include <iostream> #include<conio.h> using namespace std; int...

Обработка исключительных ситуаций - C++
Мне нужно было создать шаблонный класс и написать обработку исключающих ситуаций. Вот, что я сделал #pragma once #include <iostream>...

Обработка исключительных ситуаций - C++
Нужна одна работающая программа из 2. 1) Наберите текст программы приведенного примера обработки исключительных ситуаций и...

Обработка исключительных ситуаций. - C++
Пожалуйста,помогите решить..В субботу экзамен,а я физически не успеваю написать 6 программок..( Написать функцию вычисления...

Обработка исключительных ситуаций - C++
Правильно ли тут я обрабатываю исключения? #pragma once #include <iostream> #include "stdio.h" #include "stdlib.h" #include...

Обработка исключительных ситуаций - C++
Помогите сделать обработку исключительных ситуаций вот мой код: #include <iterator> #include "conio.h" #include <iostream> ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
22.01.2014, 13:17 #2
Числа, надо считывать как строки, проверять, число это или нет, если не число, то возбуждать исключение.
так же можно исключение вызвать при делении на 0
0
Dantekiberg
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 8
22.01.2014, 13:20  [ТС] #3
Подобрать параметры таким образом, чтобы в определенный момент происходило выполнение функции с некорректным аргументом (например, квардатный корень из -1, деление на 0,переполнение типа и т.д.)
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
22.01.2014, 13:21 #4
Цитата Сообщение от _script_ Посмотреть сообщение
исключение вызвать при делении на 0
и не надо его вызывать
само вызовется, нужно только обработать
правда если деление целочисленное
при плавающем даст бесконечность и никакого исключения
0
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
22.01.2014, 13:31 #5
Цитата Сообщение от ValeryS Посмотреть сообщение
само вызовется, нужно только обработать
У меня не обрабатывается. или я что то не так делаю? Когда в блоке try свое исключение вызываю, то все обрабатывается.
C++
1
2
3
4
5
6
7
8
int a;
    try{
        a= 3/0;
    }
    catch(...)
    {
        cout <<"Error";
    }
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
22.01.2014, 13:36 #6
Цитата Сообщение от _script_ Посмотреть сообщение
У меня не обрабатывается.
И не должно
0
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
22.01.2014, 13:39 #7
Цитата Сообщение от Kastaneda Посмотреть сообщение
И не должно
я так и думал) Просто в таких случаях, надо свое исключение генерировать)
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
22.01.2014, 13:43 #8
Цитата Сообщение от _script_ Посмотреть сообщение
У меня не обрабатывается. или я что то не так делаю? Когда в блоке try свое исключение вызываю,
ты понятия путаешь
ты не вызываешь исключения (ну по крайней мере в этом листинге)
try блок для ловли исключений (критический код)
catch для обработки исключений
throw (которого здесь нет) для генерации исключений
0
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
22.01.2014, 13:48 #9
ValeryS, под "вызвать исключение при делении на 0", я как раз подразумевал генерацию исключения с помощью throw)
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
22.01.2014, 15:37 #10
_script_,
в смысле
примерно так
C++
1
2
3
try {
if(d==0) throw Zero();
else cout  << 10 / d << "\n";}
но согласись это глупо использовать if чтобы сгенерить исключение
гораздо проще
C++
1
2
if(d)
 cout  << 10 / d << "\n";
лучше попытаться превратить системные прерывания в С++ исключение

теперь ведем речь про VisualStudio про другие не знаю
можно работать __try __except.
написать свой транслятор
и пришпандорить его
C++
1
_set_se_translator
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
#include <iostream>
#include <windows.h>
#include <eh.h>
 void trans_func( unsigned int, EXCEPTION_POINTERS* );
 
int main ()
{
    int a = 1, b = 0;
_set_se_translator( trans_func );
    try {
 
        int c = a / b;
       printf(" after Expection");
    } catch (...) { 
        std::cout << "Exception" << std::endl;
    }
 system("pause");
    return 0; // до сюда мы тоже никогда не доберемся
}
 
void trans_func( unsigned int u, EXCEPTION_POINTERS* pExp)
{
    printf( "Some structured exception occurred.\n" );
    throw std::exception(" may be division by zero - for more details look at my 'pExp'");
}
http://www.firststeps.ru/mfc/winapi/r.php?128
http://msdn.microsoft.com/ru-ru/library/5z4bw5h5.aspx
можно поиграться настройками проекта
например есть
"Включить С++ исключения Да, с SEH исключениями (/EHa)"
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2014, 15:37
Привет! Вот еще темы с ответами:

Обработка исключительных ситуаций - C++
Доброго времени суток уважаемы программисты и начинающие программисты :) Скажите, почему появляется ошибка на 6й строке? Задача стоит...

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

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

Обработки исключительных ситуаций - C++
Объясните, что от меня хотят, а то уже мозг кипит ... 7. Не абстрактный класс В является производным от абстрактного класса А. Определить...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.01.2014, 15:37
Ответ Создать тему
Опции темы

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