Программа на C ++ для деления двух целых чисел с исключением DivByZero: ошибки - PullRequest
0 голосов
/ 14 января 2019

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

main.cpp: 7.5: ошибка: ожидаемый неквалифицированный идентификатор перед токеном ‘{’ { ^

main.cpp: 39: 2: ошибка: ожидается ‘}’ в конце ввода}; ^

main.cpp: 39: 2: ошибка: ожидаемый неквалифицированный идентификатор в конце ввода

Я понимаю, что многие программисты (в основном начинающие) борются с этими типами ошибок, и я обычно могу их выяснить, но я заблудился на этом. Ошибки могут быть связаны с некоторой проблемой с классом или даже исключением. Вот мой код:

#include <iostream>
using namespace std;

class DivByZero
{
    public:
    {
        int Quotient(int a, int b)
        int c;
        {
            cout << "Please enter the numerator:" << endl;
            cin >>a;

            cout << "Please enter the the denominator:" << endl;
            cin >> b;

            cout << a/b << endl;

            return 0;
        }

        try
        {
            if(b == 0)
            {
                throw
            }
        }
    }
};

int main()
{
 catch(...)
 { 
     cout << "You attempted to divide by zero.";
 }
 return 0;
};

1 Ответ

0 голосов
/ 14 января 2019

Ваш код повсюду. Есть десятки синтаксических ошибок и несколько фигурных скобок, которые не имеют смысла. Вот рабочий эквивалент вашего кода. Я также удалил using namespace std; читать услышать почему. Также не используйте throw; вместо throw std::exception("error"); и catch (std::exception e), чтобы поймать его. Вы также написали try ... перед броском, что не имеет смысла; вы хотите использовать try вокруг кода, который может вызвать исключение. Полный код:

#include <iostream>
#include <exception>

class DivByZero {
public:
    int Quotient()
    {
        int a;
        std::cout << "Please enter the numerator:" << std::endl;
        std::cin >> a;

        int b;
        std::cout << "Please enter the the denominator:" << std::endl;
        std::cin >> b;


        if (b == 0)
        {
            throw std::exception("You attempted to divide by zero.");
        }

        std::cout << a / b << std::endl;
        return 0;
    }

};

int main()
{
    try {
        DivByZero divbyzero;
        divbyzero.Quotient();
    }
    catch (std::exception e)
    {
        std::cerr << e.what() << '\n';
    }
    return 0;
};
...