Abfangen von Ausnahmen in Python
In Python gibt es im Vergleich zu anderen Programmiersprachen sehr viele Situationen, die Ausnahmen auslösen.
Lassen Sie uns diese genauer betrachten. Nehmen wir an, wir haben eine Liste:
lst = [1, 2, 3]
Greifen wir auf ein nicht vorhandenes Element der Liste zu:
print(lts[4])
Nach der Ausführung des Codes wird ein Fehler (eine Ausnahme) ausgegeben:
IndexError: list index out of range
Wenn wir jedoch die Arbeit ohne Ausgabe der Ausnahme
fortsetzen möchten, sollte diese mit der Konstruktion
try-except abgefangen werden. Sie
hat die folgende Syntax:
try:
# Code, der eine Ausnahme auslösen kann
except:
# Fehlerbehandlung
Im Block try sollte Code platziert werden,
der eine Ausnahme enthalten kann. Wenn
bei der Ausführung dieses Codes eine
Ausnahmesituation auftritt, wird die Ausführung
nicht angehalten, sondern springt in den Code des Blocks
except. In diesem Block sollte
eine Meldung ausgegeben werden, die die Essenz des aufgetretenen Fehlers
möglichst genau beschreibt.
Wenn bei der Ausführung des Blocks try
keine Ausnahmesituationen auftreten,
wird der nützliche Code einfach ausgeführt, und der Code
aus dem Block except wird nicht ausgeführt.
Lassen Sie uns unsere Ausnahme beim Zugriff
auf ein nicht vorhandenes Listenelement abfangen. Dazu
platzieren wir den Code mit dem
potenziellen Fehler im Block try.
Und im Block except
geben wir die Meldung 'error:
elem is not exist' in der Konsole aus:
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Nach der Ausführung des Codes wird Folgendes ausgegeben:
'error: elem is not exist'
Nach dem Erlernen der Konstruktion try-except
sollte sich Ihr Codierstil ändern.
Nun müssen alle Stellen, an denen eine
Ausnahmesituation auftreten kann, in
try gewrappt werden, und im Block except
sollte die Reaktion auf diese Ausnahme
beschrieben werden.
Fragen Sie den Benutzer nach zwei Zahlen. Teilen Sie die eine durch die andere. Fangen Sie die Ausnahmesituation der Division durch Null ab.
Fragen Sie den Benutzer nach einer Zahl. Finden Sie die Quadratwurzel aus dieser Zahl. Fangen Sie die Ausnahmesituation beim Ziehen der Wurzel aus einer negativen Zahl ab.
Gegeben ist eine Liste. Fragen Sie den Benutzer nach einer ganzen Zahl. Erhalten Sie das Element der Liste, dessen Index der Benutzer eingegeben hat. Fangen Sie die Ausnahmesituation ab, die auftritt, wenn der Benutzer eine Zahl außerhalb des Bereichs der Liste eingegeben hat.
Gegeben ist der folgende Code:
num = '5'
res = num + 2
print(res)
Was ist falsch an diesem Code? Beheben Sie seine Mängel.
Gegeben ist der folgende Code:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
Was ist falsch an diesem Code? Beheben Sie seine Mängel.