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

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

Войти
Регистрация
Восстановить пароль
 
Shved
9 / 9 / 1
Регистрация: 07.06.2009
Сообщений: 34
#1

Исключения - C++

22.11.2009, 19:05. Просмотров 445. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста с программой, ибо чё-то не даётся мне этот try... catch . Собственно задача:
Вычислите 1/х как число с плавающей точкой, обработайте возникшие сообщения об ошибке с использованием исключения. double reciprocal(double x);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2009, 19:05     Исключения
Посмотрите здесь:

исключения C++
исключения C++
Исключения C++
исключения c++ C++
Исключения C++
Исключения С++ C++
Исключения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cristaloleg
148 / 49 / 1
Регистрация: 21.12.2008
Сообщений: 961
22.11.2009, 20:01     Исключения #2
C++
1
2
3
4
5
6
7
8
try
  {
    throw 20;
  }
  catch (int e)
  {
    cout << "An exception occurred. Exception Nr. " << e << endl;
  }
try эт если нет ошибок
catch отлавливает номер ошибки
Shved
9 / 9 / 1
Регистрация: 07.06.2009
Сообщений: 34
22.11.2009, 20:11  [ТС]     Исключения #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;
 
void main()
{
    float y;
    int x;
    cin>>x;
    try
    {
        y=1/x;
                      cout<<y;
    }
    catch(int a)
    {
        cout<<"Divide to zero"<<a;
    }
}
Так? Но если х вводишь равным 0 оно не выводит ошибку..
cristaloleg
148 / 49 / 1
Регистрация: 21.12.2008
Сообщений: 961
22.11.2009, 20:14     Исключения #4
по идеи
C
1
int e
любая ошибка будет отлавливаться. а вот если конкретно деление на ноль, то не знаю

Добавлено через 1 минуту
чтобы узнать номер ошибки
C++
1
double k = 1/0;
открой в отладке и увидишь ошибку!
Shved
9 / 9 / 1
Регистрация: 07.06.2009
Сообщений: 34
27.11.2009, 13:38  [ТС]     Исключения #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
using namespace std;
 
void main()
{
    float y;
    float x;
    cin>>x;
    cout<<endl;
    try
    {
        y=1/x;
        cout<<y<<endl;
    }
    catch(int a)
    {
        cout<<"Divide to zero"<<a<<endl;
    }
}
При введении 0 пишет 1.#INF , а мне надо бы , чтобы выводило Divide to zero , что тут не так?
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
27.11.2009, 14:28     Исключения #6
Shved,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
int main()
{
    double x,y;
    try
    {
        std::cin>>x;
        if (x==0) throw "error";
        y = 1 / x;
        std::cout << y;
    }
    catch (const char *s)
    {
        std::cout<<"divide by zero"<<std::endl;
    }
    return 0;
}
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
27.11.2009, 16:25     Исключения #7
Андрейка, чего уж тогда не так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
int main()
{
  double x,y;
  try
  {
    std::cin >> x;
    if (x==0) 
      throw "divide by zero";
    y = 1 / x;
    std::cout << y;
  }
  catch (const char *s)
  {
    std::cout << s << std::endl;
  }
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2009, 16:39     Исключения
Еще ссылки по теме:

Исключения C++
C++ Исключения
C++ исключения
C++ Исключения
C++ Исключения

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

Или воспользуйтесь поиском по форуму:
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
27.11.2009, 16:39     Исключения #8
BornLeader, а да точно просто на скорую руку лажанулся)
Yandex
Объявления
27.11.2009, 16:39     Исключения
Ответ Создать тему
Опции темы

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