Theorie Icon

Lernziele
Du kannst...
  • Zugriffs-, Semantik- und Bedienfehler deines Programms erkennen,
  • Fehler einordnen,
  • Fehler durch das try...catch Statement abfangen und
  • Lösungen bei auftretenden Fehlern implementieren.

Link: Materialien CodingDoJo week12


Übungsaufgaben

Löse folgende Übungsaufgaben. Die mit dem * gekennzeichnete Aufgaben sind zusätzliche Übungsaufgaben, die zur Wiederholung gedacht sind.

Fehlerbehandlung

Thonny Icon

A01 Fehlerbehandlung bei Benutzereingaben
Implementiere ein Programm, das vom Benutzer eine Zahl einliest, diese Zahl mit 10 multipliziert und dann ausgibt. Teste das Programm mit den Eingaben: 4, 100 und Hundert.

Gib eine Zahl ein: 4
40.0

Gib eine Zahl ein: 100
1000.0

Gib eine Zahl ein: Hundert
Traceback (most recent call last):
File "...\Programmierübung\Algorithmik\Fehlerbehandlung\Aufgabe_Aa.py", line 6, in <module>
eingabe = float(eingabe)
ValueError: could not convert string to float: 'Hundert'

Thonny Icon

A02 Fehlerbehandlung und Berechnung (in ArTEMiS)
Implementiere ein Programm, das eine Zahl vom Benutzer einliest und dann die Rechnung 5 / (zahl - 3) berechnet und ausgibt. Fange alle auftretenden Fehler ab und teste das Programm mit den Eingaben: "Python", 5, 3 und 3.0

Gib eine Zahl ein: Python
Die Eingabe erzeugt einen Fehler. Bitte versuche es noch einmal.

Gib eine Zahl ein: 5
2.5

Gib eine Zahl ein: 3
Die Eingabe erzeugt einen Fehler. Bitte versuche es noch einmal.

Gib eine Zahl ein: 3.0
Die Eingabe erzeugt einen Fehler. Bitte versuche es noch einmal.

Thonny Icon

A03 *Angepasste Fehlermeldungen (in ArTEMiS)
Modifiziere das Programm aus der vorherigen Aufgabe so, dass Sie bei den verschiedenen Fehlern unterschiedliche, passende Fehlermeldungen ausgeben.

Gib eine Zahl ein: Python
Das Programm unterstützt nur Zahlen bestehend aus den Ziffern 0 bis 9.

Gib eine Zahl ein: 5
2.5

Gib eine Zahl ein: 3
Deine Eingabe löst leider eine Division durch durch 0 aus, welche nicht möglich ist.

Gib eine Zahl ein: 3.0
Deine Eingabe löst leider eine Division durch durch 0 aus, welche nicht möglich ist.

Fehlerbehandlung bei Dateizugriff

Thonny Icon

B01 Dateinamen einlesen
Implementiere ein Programm, das vom Benutzer einen Dateinamen einliest und diese Datei dann öffnet. Fange alle möglichen Fehler ab und gebe dem Benutzer eine Rückmeldung.

Welche Datei soll geöffnet werden? test
Es wurde keine Datei mit diesem Namen gefunden.

Thonny Icon

B02 Fehlerbehandlung Dateizugriff
Modifizieren das vorherige Programm so, dass es solange Dateinamen einliest, bis eine Datei ohne Fehler geöffnet wurde. Lege eine Datei test.txt in dem gleichen Verzeichnis an und teste das Programm. Vergiss nicht die Datei am Ende des Programms wieder zu schließen.

Welche Datei soll geöffnet werden? test
Es wurde keine Datei mit diesem Namen gefunden.
Welche Datei soll geöffnet werden? test.txt
Die Datei test.txt wurde erfolgreich geöffnet
Die Datei test.txt wurde wieder geschlossen.

Thonny Icon

B03 Ausgabe einer Datei
Modifiziere das Programm so weiter, dass es bei erfolgreicher Öffnung einer Datei diese Zeile für Zeile ausgibt. Fülle die Datei test.txt mit Text und teste das Programm.

Welche Datei soll geöffnet werden? test
Es wurde keine Datei mit diesem Namen gefunden.
Welche Datei soll geöffnet werden? test.txt
Die Datei test.txt wurde erfolgreich geöffnet
That is not dead which can eternal lie,
And with strange æons, even death may die.
Die Datei test.txt wurde wieder geschlossen.

Thonny Icon

B04 *Abbruchbedingung einfügen
Modifiziere das Programm weiter, so dass bei der Eingabe von "Exit" als Dateinamen das Programm abgebrochen wird.

Welche Datei soll geöffnet werden? Exit
Das Programm wird jetzt beendet.

Fehlerbehandlung bei Modulzugriff

Thonny Icon

C01 Moduleinbindung
  1. Lege eine neue Datei mit dem Namen wichtigesModul.py an.
  2. Implementiere zwei Funktionen gibZahl1 und gibZahl2, die jeweils nichts weiter als die Zahl 42 zurückgeben.
  3. Lege eine zweite Datei mit dem Namen meinProgramm.py an.
  4. Importiere die Funktionen aus dem in 1) erstellten Modul und rufe diese auf.
  5. Ändere den Funktionsnamen gibZahl1 in wichtigesModul.py zu gibZahl3 und führe die Datei meinProgramm.py aus.
  6. Fange nun den Fehler ab und gib eine Rückmeldung an den Benutzer aus.

Die Funktion gibZahl1 konnte nicht ausgeführt werden, da sie nicht bekannt ist.