ofstream Ausnahmebehandlung
Bewusst bin ich mit dieser Methode, die schreibt in eine Datei, so dass ich versuchte, Sie zu behandeln der Ausnahme der Möglichkeit, dass ich Schreibe in eine geschlossene Datei:
void printMe(ofstream& file)
{
try
{
file << "\t"+m_Type+"\t"+m_Id";"+"\n";
}
catch (std::exception &e)
{
cout << "exception !! " << endl ;
}
};
Aber anscheinend std::exception ist nicht die entsprechende Ausnahme für eine geschlossene Datei Fehler denn ich habe bewusst versucht, diese Methode auf eine bereits geschlossene Datei, aber meine "Ausnahme!!!! "Kommentar wurde nicht generiert.
Also, was sollte die Ausnahme habe ich geschrieben????
Du musst angemeldet sein, um einen Kommentar abzugeben.
Streams nicht Ausnahmen standardmäßig, aber Sie können sagen, Sie werfen Ausnahmen, die mit dem Aufruf der Funktion
file.exceptions(~goodbit)
.Statt, der normale Weg, Fehler zu erkennen, ist einfach zu überprüfen, den stream-Zustand:
Der Grund dafür ist, dass es viele gemeinsame Situationen, in denen eine ungültige Lesen ist ein kleineres Problem, nicht groß:
gegenüber:
Sehen, es zu Leben: http://ideone.com/uWgfwj
Ausnahme des Typs ios_base::failure, Jedoch beachten Sie, dass Sie haben sollten, setzen Sie das entsprechende Kennzeichen mit ios::Ausnahmen zu generieren, die Ausnahmen sonst nur interne Status-flags gesetzt werden für die Angabe der Fehler, die das Standardverhalten für streams.