Nach der Handhabung durch einige Links auf Ausnahme gehen (1, 2 und 3), ich weiß, dass C++ Programme ziemlich alles, was als Ausnahmen auslösen können (int
, char*
, string
, exception
Klasse). Ich weiß, dass std::exception
die Basisklasse für Standardausnahmen ist, die vom Programm ausgelöst werden.Welche Art von Ausnahme sollte ich werfen?
try
{
MyFunc();
}
catch (certain exceptions)
{
// deal with the exception accordingly
}
catch (the rest of the exceptions)
{
// deal with these accordingly
}
während MyFunc()
enthält folgende Komponenten:: Aber ich bin ein try
... catch
Block als solche zu entwerfen versucht
void MyFunc()
{
...
if (certain condition is true) throw exception;
...
}
Das Problem ist, dass in diesem Teil MyFunc
Funktion I bin mir nicht sicher, welche Art von Ausnahme ich werfen sollte. Um den Code sauber zu halten, indem ich meine eigene Exception-Klasse implementiere, habe ich keine Ahnung, was eine gute Möglichkeit wäre, eine solche Exception-Klasse zu implementieren.
Would mit boost eine gute Idee, auch wenn meine gesamte Projekt isn sein Verwenden Sie noch keine Boost-Bibliotheken? – stanigator
Wahrscheinlich nicht. Die obige Hierarchie kann stattdessen verwendet und entsprechend Ihren Bedürfnissen modifiziert werden. Ich habe mäßigen Erfolg mit so genannten eexception-level in großen Projekten. Außerdem kann es zu geringfügigen Portabilitätsproblemen kommen, wenn Sie die Cross-Compilierung mit Boost verwenden, da sie stark templated ist. Einige Compiler entsprechen möglicherweise nicht dem C++ - Standard. – Abhay