C++

Filestream: Status

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Auf die richtige Fehlerbehandlung kommt es auch beim Dateizugriff an. Erfahren Sie in diesem Video, worauf Sie bei der Verwendung von Filestreams achten sollten und auf welche Fehler Sie reagieren können.

Transkript

So ich möchte jetzt noch einbischen was zum Tema Fehlerbehandlung zeigen. Wir haben wieder unseren fstream zur Datenstruktur in setplayer. Hier liegen wir ein paar user wieder an und dann Prüfe ich ob die Datei vielleicht von vorherigen Beispiel schon da ist, wenn nicht wird sie auch angeliegt. Aber geben wir jetzt hier mal zum Einlesen. Das ist natürlich auch eine Art der Fehlerbehandlung. wenn das nicht aufzumachen ist, dann ist hier irgendwas ganz furchtbar schief gelaufen. Aber innerhalb der Datenstrukturen können natürlich auch Sachen passieren. Und deshalb schauen wir uns das hier mal an. Ich prüfe hier mal mit Absicht nur, ob die player-Zahl gößer null ist, also man könnte jetzt hier auch einen Wert angeben, einen player der gar nicht als record existiert. Und mit seekg würde man da jetzt einfach hingehen, und versuchen Sie Daten einzulesen. Es gibt also spätestens hier ein Fehler. Den kann man aber anfangen, nämlich, wenn man leseschreibdaten.good() abrüft, dann war es okay. Dann kann ich hier in gewohnter Manie die Daten einlesen und hier auch, wenn es sein muss, wieder ändern. Hier wird jetzt auch noch mal wichtig der flush-Befehl. Der sorgt dafür, dass die Daten auch wirklich auf der Platte angelangen. Das könnte man auch aber später machen, also warten, bis das Ganze geschlossen wird, aber wenn das Programm abstürzt, sind die Daten unter Umständen schon verloren. Das ist immer wichtig, dass man so etwas gleich macht. Nun gut, und hier im else-Pfad, also wenn nicht gut, wenn ich hier also ein Fehler bekomme, ungleich gut. Dann kann ich abprüfen was passiert ist. eof-Dateiwnsw erreicht, fail, ein nicht fataler Fehler, oder ein bad, ein fataler Fehler des Systems teilt die üblichen Fehler hier ein und löschen kann ich dann die entsprechende Meldung hier mit clear. das ist wichtig weil, wir wollen ja hier in der Schleife bleiben wenn es irgendwie geht. Natürlich, wenn er das System rauswirft, dann hat man hier Pech gehabt, aber was hier jetzt passieren kann,ist einfach, dass ich hier ein Wert angebe, der zu groß ist. Und wir starten das mal. Also zunächst einmal player 2 auslesen. Das ist alles ganz normal. 3 auslesen, 4 auslesen, kann ich alles machen. Wenn ich jetzt aber den player 6 auslesen will, bekomme ich einen Fehler. End of File, EOF FAIL (not fatal). Also, das ist okay. Und ich kann aber jetzt hier ganz normal wieder weiter arbeiten...4 Könnten auch hier die Highscore noch ändern. Nochmal einlesen. So das funkioniert, und mit Ende komme ich hier auch aus der Geschichte wieder raus. Also, Sie sehen schon, das funktioniert entsprechend. Wir haben hier übrigens zwei FLAGS bekommen, nämlich einmal End-of-File und ein FAIL, Bei nicht fatalem Fehler. Also es können mehrere dieser FLAGS gesetzt werden vom System. Je nachdem, um was für ein Fehler es sich entsprechend handelt.

C++

Machen Sie sich mit den einfachen Grundlagen zu C++ vertraut und lernen Sie anhand zahlreicher Übungs- und Codebeispiele die Klassenkonzepte, Prozeduren und Funktionen kennen.

9 Std. 3 min (143 Videos)
Derzeit sind keine Feedbacks vorhanden...

Video-Training auf DVD mit Bonusmagazin

+ Tutorial to go: Mit Videos für iPod, iPhone & Co.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!