Übungsaufgaben 9

Fehlerbehandlung

Übungsaufgabe 09.01: IP-Adressen-Validator

Schreiben Sie eine Funktion, die prüft, ob es sich bei einem String um eine gültige IPv4-Adresse handelt (vier Ganzzahlen von 0 bis 255, getrennt durch Punkte). Bei ungültigen Strings sollte die Funktion keine Exception werfen, sondern einfach False zurückgeben.

Tipp: Verwenden Sie die int-Funktion und fangen Sie einen eventuellen ValueError ab.

Übungsaufgabe 09.02: Exceptions

Betrachten Sie den untenstehenden Code. Identifizieren Sie mindestens 4 Fehlerarten, die hier ausgelöst werden (können). Schreiben Sie den Code so um, dass er ausgeführt werden kann! Behandeln Sie dabei mindestens eine der von Ihnen gefundenen Fehlerarten mit einem try/except-Block.

name = input("Name eingeben: ")
lese_visitenkarte(name+".txt")

def lese_visitenkarte(datei):
    # öffne Visitenkartendatei
    vk = open(datei, "r")
    daten = {}
    # readlines liest die Zeilen der Datei als Liste ein
    info = vk.readlines()

      # erste Zeile: Vorname und Nachname
      vorname = info[0].split()[0]
      nachname = info[1].split()[1]

      # zweite Zeile: Telefonnummer
      telnr = info[1]

    print(telnr - 2)
    print(int(telnr))
    daten["vorname"] = vorname
    daten["nachname"] = nachname
    print(daten["telnr"])

Übungsaufgabe 09.03: Programmierfehler

Betrachten Sie das untenstehende Programm. Es löst keine Exceptions aus, enthält aber trotzdem Fehler – es tut nicht das, was es soll! Identifizieren Sie die Probleme und schreiben Sie das Proramm so um, dass es richtig funktioniert.

def read_file_lowercase(filename):
    f = open(filename)
    for line in f:
        lines = []
	line.rstrip()
        line.lower()
        lines.append(line)
    f.close()
    return lines

print('Dieses Programm liest eine Datei, konvertiert ihren Inhalt zu')
print('Kleinbuchstaben, und gibt ihn aus.')
filename = input('Dateiname eingeben: ')
read_file_lowercase(filename)