Mój program jest następujący: (na linux)Exception Handling w C++ przez rzucanie ciąg
// Ex. 2 of Exception Handling
// Here divn() raises the exception but main() will be the exception handler
#include<iostream>
using namespace std;
int divn(int n, int d)
{
if(d == 0)
throw "Division by ZERO not possible ";
return n/d;
}
main()
{
int numer, denom;
cout << "Enter the numerator and denominator : ";
cin >> numer >> denom;
try
{
cout << numer << "/" << denom << " = " << divn(numer,denom) << endl;
}
catch(char *msg)
{
cout << msg;
}
cout << "\nEnd of main() \n ";
}
/* powinno rzucać wyjątek i zapewnić dany komunikat o błędzie, gdy stawiamy mianownika jako 0. wyjście I dostać kiedy wprowadzić denom jako 0 jest następujący:
administrator @ ubuntu: ~/FYMCA/CPP_class $ g ++ prog110.cpp administrator @ ubuntu: ~/FYMCA/CPP_class $ ./a.out Wprowadź licznik i mianownik: 12 0 kończy się wywołanie po rzuceniu instancji 'char const *' Przerwano (zrzucono rdzeń)
Jak mogę rozwiązać problem?
Konwersja na 'char *' jest nielegalna w C++ 11 –
Należy również zmienić metodę main() na int main() i dołączyć wartość return (0); na końcu. – unxnut
Zrobiłem zmienić moje 'main()', a 'return 0' nie jest konieczne dla' main() '. –