263
9.2
Mehr Zuverlässigkeit durch try- und with-Anweisungen
Testen Sie das Programm. Im ersten Programmlauf geben Sie einen Pfad an, der mit einem
wirklich existierenden Verzeichnis beginnt.
Sowohl die Anweisungen der try-Klausel als auch der finally-Klausel werden ausgeführt.
Das Programm wird nicht abgebrochen.
Im zweiten Programmlauf geben Sie einen Pfad mit einem Verzeichnis ein, das nicht
existiert.
Das Programm wird nach der
try ... finally ...-Anweisung mit einer Fehlermeldung
(Traceback) abgebrochen. Die letzte Zeile des Programmtextes wurde nicht mehr ausgeführt.
Die
finally-Klausel kann auch dann verwendet werden, wenn die try-Anweisung eine
except-Klausel enthält. Doch dann wird das Programm bei einem Fehler nicht mehr abge-
brochen.
9.2.2 With-Anweisungen
Bestimmte Dinge, die man angefangen hat, sollte man immer zu einem definierten Ende
bringen – auch dann, wenn zwischendurch etwas schiefgeht. Das ist – grob gesagt – die
Idee der
with-Anweisung. Sie ist im einfachsten Fall so aufgebaut:
finally:
f = open('/temp/daten.bak', 'w')
f.write(daten)
f.close()
print('Sicherheitskopie im Verzeichnis "/temp"')
print('Programm beendet')
Daten: Wissen ist Macht
Pfad: /daten/daten.txt
Daten gespeichert
Sicherheitskopie im Verzeichnis "/temp"
Programm beendet
Daten: Wissen ist Macht
Pfad: /gibtsnicht/daten.txt
Sicherheitskopie im Verzeichnis " c:\temp"
Traceback (most recent call last):
...
No such file or directory: '/gibtsnicht/daten.txt'
>>>
with A as a:
Anweisungsblock

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.