Je viens de commencer à utiliser les exceptions en C++, mais à chaque fois qu'une exception est appelée, mon programme se termine par :
se termine après le lancement d'une instance de "MonException1".
what()
: Votre publicité pourrait se trouver ici
et je ne sais pas pourquoi. Je dois utiliser C++03, car je programme pour un système QNX.
Ma classe d'exception :
using namespace std;
#include <exception>
class Exception : public exception
{
public:
Exception(const char* msg): msg_((char*)msg) {};
virtual const char* what() const throw()
{
return msg_;
}
virtual ~Exception() throw(){};
private:
char* msg_;
};
class MyException1 : public Exception
{
public:
MyException1(const char* message):Exception(message){}
};
La classe qui lance et attrape l'exception :
using namespace std;
#include "ExceptionUseExample.h"
#include <iostream>
void ExceptionUseExample::doSomethingElse() throw()
{
throw MyException1("Hier koennte Ihre Werbung stehen");
}
void ExceptionUseExample::doSomething()
{
try
{
doSomethingElse();
}
catch (MyException1& e)
{
cerr << "catched MyException1: " << e.what() << endl;
}
}