Immer wenn ich diesen Code versuche, den Klassentyp als Ausnahme abzufangen, erhalte ich eine Fehlermeldung als "veraltete Konvertierung von String-Konstante in 'char *'".Fehler beim Klassentyp als Ausnahme in C++
Warum ist es so und wie kann es vermieden werden?
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
class Error
{
int err_code;
char *err_desc;
public:
Error(int c , char* p)
{
err_code=c;
err_desc=new char(strlen(p));
strcpy(err_desc,p);
}
void display(void)
{
cout<<err_code<<"done successfully"<<err_desc;
}
};
int main()
{
int x;
try
{
cout<<"\n press any key to avoid exception except 99";
cin>>x;
if(x=99)
throw Error(x,"Exception");
}
catch (Error e)
{
cout<<"\n exception caught successfully";
e.display();
}
return 0;
}
... oder noch besser, machen Sie das Richtige und leiten Sie von std :: runtime_error ab –