Zadanie z wyjątkami.

0

Mam problem z jednym błędem:
wyjątek języka Microsoft C++: std::basic_string<char,std::char_traits<char>,std::allocator<char> >
Próbuję ogarnąć wyjątki ale w chwili obecnej jest to czarna magia dla mnie. Proszę o pomoc z tym błędem bo nie mam pojęcia co zmienić, żeby zadziałało.

#include <iostream>
#include <string>

using namespace std;
 
  
double Lin(double, double)
{
	return 0;
}


int main()
{
	string w;
	double a, b, x;
	cout << "Obliczanie funckji liniowej: ax+b=0" << endl;
	cout << "Podaj a: ";
	cin >> a;
	cout << "Podaj b: ";
	cin >> b;

	
	double Lin(double a, double b);
	{
		double x;
		if (a == 0 && b == 0)
		{
			string w = "Nieskonczenie wiele rozwiazan";
				throw w;
		}
		else if (a == 0 && b != 0)
		{
			string w = "Brak rozwiazan";
				throw w;
		}
		x = b / a;
		cout << "x = " << x << endl;
		return x;
	}
	try
	{
		Lin(a, b);

	}

	catch (string w)
	{
		cout << "Wyjatek:  " << w;
	}
		
}
1

double Lin(double a, double b); co to jest w ciele innej funkcji?

0

throw ma rzucać wyjątek a nie stringa :P

#include <exception>

class InfiniteResults : public std::exception {
  const char *what() const throw() { return "Nieskonczenie wiele rozwiazan"; }
};

class LackOfResults : public std::exception {
  const char *what() const throw() { return "brak rozwiązan";  }
};

int main(){
...
    if(...){
        throw InfiniteResults();
    }
....
0

Ale w czym konkretnie masz problem, bo nie raczyłeś napisać.

    double Lin(double a, double b);
    {
        double x;
        if (a == 0 && b == 0)
        {
            string w = "Nieskonczenie wiele rozwiazan";
                throw w;
        }
        else if (a == 0 && b != 0)
        {
            string w = "Brak rozwiazan";
                throw w;
        }
        x = b / a;
        cout << "x = " << x << endl;
        return x;
    }

nieudolna próba definicji funkcji wewnątrz funkcji, tak się tego nie robi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1