Die Aufgabe
Aufgabe 9
Gegeben sind die folgenden Methoden:
public static void schreibeInDatei() { Files.writeString(Path.of("Datei1"), "Das ist der Inhalt");} public static void testMethode() { schreibeInDatei();}Der Code ist fehlerhaft, da „Files.writeString“ im Fehlerfall eine „IOException“ wirft. Dabei handelt es sich um eine CheckedException, die behandelt werden muss. Diese Behandlung soll allerdings nicht in der Methode „schreibeInDatei“ erfolgen, sondern in der Methode „testMethode“.
Ändern Sie die angegebenen Methoden so, dass die IOException an „testMethode“ weitergereicht und in der testMethode behandelt wird. Beim Auftreten der Exception soll deren Message ausgegeben werden.
Gegeben sind zwei Methoden, die sich so nicht übersetzen lassen. Gesucht sind die geänderten Methoden: schreibeInDatei soll die IOException nur weiterreichen, testMethode soll sie behandeln und ihre Meldung ausgeben.
IOException muss behandelt werden, sonst übersetzt der Compiler den Code nicht. Eine Methode hat zwei Möglichkeiten: Sie fängt die Exception mit try-catch, oder sie reicht sie mit throws im Methodenkopf an ihren Aufrufer weiter. Dann muss sich der Aufrufer darum kümmern.- Verstehen, warum der gegebene Code nicht übersetzt.
- schreibeInDatei reicht die IOException mit throws weiter.
- testMethode fängt sie mit try-catch und gibt die Meldung aus.
- Probelauf mit und ohne Fehler.
Zu dieser Probeklausur gibt es keine Musterlösung. Die Lösung hier ist selbst erarbeitet und in einem kleinen Programm übersetzt und ausgeführt.