Skid
Erfahrenes Mitglied
Hallo zusammen,
ich habe in einem Programm eine Ausgabe von Fehlern mittels MessageBox integriert, die Fehlertext (MessageBox-Text) und eine Id (MessageBox-Caption) des Fehlers anzeigt. Die Id und der Text ist jeweils in einer separaten Header-Datei gespeichert und mittels Schlüsselwort "define" definiert, also etwa so:
Jetzt habe ich mir überlegt, da die einzelne Ausgabe einer MessageBox je Fehler doch recht mühselig ist, einfach eine Exception zu werfen, die in der Main-Funktion "gefangen" wird und dort die jeweilige MessageBox ausgibt. Die Exception Klasse beinhaltet dabei den Text und die Id des Fehlers. Diese werden an die MessageBox weitergereicht.
Allerdings gibt es dabei ein Problem:
Der Konstruktor der Exceptionklasse erwartet eine Zeichenkette (char). Soweit ich jedoch weiß ist der Typ einer Konstante, die mit "define" definiert wurde, "TEXT". Ich könnte jetzt natürlich alle Fehler mit Text und ID als "const char[]" definieren, allerdings weiß ich nicht, ob das so - mal abgesehen von dem Aufwand - vorteilhaft ist ?
Hier der Auszug der Exceptionklasse:
Hat jemand eine Idee oder Anregung?
Beste Grüße und vielen Dank,
SKiD.
ich habe in einem Programm eine Ausgabe von Fehlern mittels MessageBox integriert, die Fehlertext (MessageBox-Text) und eine Id (MessageBox-Caption) des Fehlers anzeigt. Die Id und der Text ist jeweils in einer separaten Header-Datei gespeichert und mittels Schlüsselwort "define" definiert, also etwa so:
Code:
#define ERR_WIN_STR "Window error"
#define ERR_WIN_ID "Error 0"
Jetzt habe ich mir überlegt, da die einzelne Ausgabe einer MessageBox je Fehler doch recht mühselig ist, einfach eine Exception zu werfen, die in der Main-Funktion "gefangen" wird und dort die jeweilige MessageBox ausgibt. Die Exception Klasse beinhaltet dabei den Text und die Id des Fehlers. Diese werden an die MessageBox weitergereicht.
Allerdings gibt es dabei ein Problem:
Der Konstruktor der Exceptionklasse erwartet eine Zeichenkette (char). Soweit ich jedoch weiß ist der Typ einer Konstante, die mit "define" definiert wurde, "TEXT". Ich könnte jetzt natürlich alle Fehler mit Text und ID als "const char[]" definieren, allerdings weiß ich nicht, ob das so - mal abgesehen von dem Aufwand - vorteilhaft ist ?
Hier der Auszug der Exceptionklasse:
Code:
class cException
{
protected:
private:
// Variables
char * mMessage;
char * mId;
public:
// (De-)Constructor
cException(char& pStrMessage, char& pStrId);
virtual ~cException() {}
// Functions
const char* fGetStr() { return mMessage; }
const char* fGetId() { return mId; }
};
Hat jemand eine Idee oder Anregung?
Beste Grüße und vielen Dank,
SKiD.