Practicumopgaven C++ Programmeren (2CPPP1) week 6


Excepties.

Gegeven is het onderstaande UML-klassendiagram voor een aantal klassen die kunnen worden gebruikt voor het lezen en schrijven van getallen in een tekstfile.
De klasse FileReader heeft het ifstream attribuut inFile en een get() methode om een int uit een file te lezen. Een  FileReader-object wordt gemaakt m.b.v. de naam van een file. Zowel de constructor als de get() methode werpen een file_error-exceptie als er iets mis gaat met het openen of het lezen van het file. De destructor van de FileReader klasse dient de geopende ifstream te sluiten. Als er uit een file wordt het lezen als het einde van het file is bereikt, wordt een eof_error-exceptie geworpen.
De klasse FileWriter heeft vergelijkbare functionaliteit en kan worden gebruikt om een int waarde in een file te schrijven. Als het file niet kan worden geopend, of er iets mis gaat met het schrijven, wordt een file_error-exceptie geworpen.

Om te testen of het openen van een file lukt en of het lezen of schrijven van een file slaagt, kun je gebruik maken van de methode fail(). Deze levert true op als er iets mis gaat.
Als de methode eof() van de klasse ifstream na het lezen van een getal true oplevert, is het lezen mislukt.



Het volgende moet worden gedaan:

  • Implementeer de klassen FileReader en FileWriter en de twee exceptie-klassen in C++.
  • Schrijf een programma waarin alle methoden, inclusief constructors en destructors, worden getest en waarbij speciaal wordt gelet op het afvangen van alle mogelijke excepties die kunnen optreden.
    N.B.    Zorg er voor dat alle mogelijke excepties ook worden gegenereerd !