Frage von epilepticPi, 34

Wie kann ich fstream dazu bringen eine Exception zu erzeugen?

Ich habe in einem Forum std::ifstream::failure &readErr gefunden, aber VS 2015 sagt mir diese Funktion existiert nicht mehr.

EDIT: Die Funktion geht nun, aber trotzdem wird catch nie ausgeführt

Antwort
von TeeTier, 17

Du musst mithilfe der exceptions() Funktion die entsprechenden Flags setzen:

using namespace std;

ifstream file;
file.exceptions(ifstream::failbit | ifstream::badbit);

try {
file.open("zahlen.txt");

int i;
file >> i;

cout << "Eine Ganzzahl: " << i << endl;
} catch (const ifstream::failure &e) {
cerr << "Aaaahhhhhh!!!11!!1!" << endl;
}
Kommentar von epilepticPi ,

Nun wird leider jedes mal die textdatei nicht gefunden , bzw der catch block ausgeführt

Kommentar von TeeTier ,

In diesem Falle stimmt der Pfad wohl nicht. Versuch es doch mal mit einer absoluten Pfadangabe! ;)

Kommentar von epilepticPi ,

Selbst wenn ich es in VS compile. Und ja ich habe die Textdatei dem Projekt hinzugefügt

Keine passende Antwort gefunden?

Fragen Sie die Community