Ü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)