Ziel

  • Sie können mit dem try…except Konstrukt Fehler auffangen und behandeln.

Auftrag

Hinweis: Diese Übung basiert auf der vorhergehenden m320-lu03-a01-grade, die nun um das Exception-Handling erweitert wird.
              Bis jetzt haben Sie bei erkannten Fehlern eine Exception ausgelöst. Dabei handelt es sich um eine allgemeine Exception. Wir wollen aber spezifisch reagieren können.
              Darum werden wir dem Thema 'Vererbung' etwas vorgreifen. Lassen Sie sich davon nicht abschrecken - ist ganz einfach.


Vorbereitung spezifischer Exception
Geben Sie vor der main-Methode folgenden Code ein:

class ListRangeException(Exception):
    def __init__(self, message):
        super().__init__(message)

Das gleiche wiederholen Sie dann für

  • GradeRangeException
  • ListIndexException


Anpassen der Exception
Ersetzen Sie den Code für die Erzeugung der (allgemeinen) Exception durch die passende, spezifische Exception.
Hier am Beispiel für GradeRangeException gezeigt.
alter Code

   raise Exception(f"Der Notenwert muss im Bereich 1.0 bis 6.0 liegen")

neuer Code

   raise GradeRangeException(f"Der Notenwert muss im Bereich 1.0 bis 6.0 liegen")


Fangen der Exception in main
1. Fügen Sie nach dem Befehl

  print("\nund nun einen weiteren Wert zufügen")

einen try-except Block ein, der die nächsten 2 Befehle umfasst.
Im except-Block geben Sie die Meldung der Excpetion aus.
Führen Sie das Programm aus und beobachten Sie die Wirkung am Stdout.

2. Fügen Sie nach dem Befehl

  print("\nund nun eine ungültige Note zufügen")

einen try-except Block ein, der die nächsten 2 Befehle umfasst.
Im except-Block geben Sie die Meldung der Excpetion aus.
Führen Sie das Programm aus und beobachten Sie die Wirkung am Stdout.

3. Fügen Sie nach dem Befehl

   print("\nNote an Position 8 lesen ")

einen try-except Block ein, der den nächsten Befehle umfasst.
Im except-Block geben Sie die Meldung der Excpetion aus.
Führen Sie das Programm aus und beobachten Sie die Wirkung am Stdout.


Wenn das Programm nun ohne Fehlerausgabe durchläuft, haben Sie alles richtig gemacht. Bravo.

Abgabe

Geben Sie Ihre Lösung via Push auf GitHub ab.


  • modul/m320/learningunits/lu03/aufgaben/lu04-aufgabe_2-v2.txt
  • Last modified: 2023/11/13 08:56
  • by 127.0.0.1