In Python ist es sehr einfach, Operationen wie Division und Dateiverarbeitung durchzuführen. Allerdings können während der Programmausführung manchmal Fehler auftreten, die das Programm abrupt beenden. Hier kommt die Ausnahmebehandlung ins Spiel. Python verwendet try- und except-Blöcke, um Ausnahmen zu handhaben. Die Operationen, die Ausnahmen auslösen können, werden in den try-Block geschrieben, und der Code zur Behandlung der Ausnahmen kommt in den except-Block.
Betrachten Sie eine einfache Division:
a = int(input())
b = int(input())
print(a / b)
print('The program continues...')
Bei den Eingaben 10 und 2 würde das Programm 5.0 und The program continues... ausgeben. Wenn wir jedoch 10 und 0 eingeben, würde das Programm stoppen und eine Fehlermeldung ausgeben: ZeroDivisionError: division by zero.
Um diesen Fehler zu behandeln, können wir die Ausnahmebehandlung verwenden:
try: # Versuchen Sie, die Operationen im Block auszuführen
a = int(input())
b = int(input())
print(a / b)
except ZeroDivisionError: # Was zu tun ist, wenn ein ZeroDivisionError auftritt
print('Error: Division by zero is not allowed.')
print('The program continues...')
Wenn wir nun das Programm mit den Eingaben 10 und 0 ausführen, wird es Error: Division by zero is not allowed. und The program continues... ausgeben.
Ähnlich können wir andere Ausnahmen wie ValueError behandeln, die auftreten, wenn die Eingabe keine Ganzzahl ist. Wir können einen weiteren except-Block hinzufügen, um diesen Fehler zu behandeln:
try:
a = int(input())
b = int(input())
print(a / b)
except ZeroDivisionError:
print('Error: Division by zero is not allowed.')
except ValueError:
print('Error: Input is not a valid integer.')
Wir können so viele except-Blöcke hinzufügen, wie wir benötigen, um verschiedene Arten von Ausnahmen zu behandeln. Auf diese Weise können wir sicherstellen, dass unser Programm nicht abrupt aufgrund von Fehlern stoppt und dem Benutzer hilfreiche Meldungen bereitstellen.
💡
Es ist wichtig zu beachten, dass die Reihenfolge der except-Blöcke von Bedeutung ist.
Python führt den ersten except-Block aus, der dem aufgetretenen Fehlertyp entspricht. Wenn keiner der except-Blöcke passt, wird der Fehler nicht behandelt.
Sie können auch mehrere Ausnahmen in einer Zeile abfangen:
try:
a = int(input())
b = int(input())
print(a / b)
except (ZeroDivisionError, ValueError) as e:
print('Error:', e)
Hier enthält e die Instanz der ausgelösten Ausnahme.
Durch die Verwendung von Ausnahmebehandlung können wir unsere Python-Programme robuster und benutzerfreundlicher gestalten.
Herausforderung: Fläche eines Rechtecks
Sie sollen ein Programm schreiben, das zwei Gleitkommazahlen aus der Eingabe liest. Diese Zahlen h und w repräsentieren die Höhe und die Breite eines Rechtecks. Ihre Aufgabe ist es, die Fläche des Rechtecks zu berechnen und auszugeben.
Allerdings sind nicht alle Eingaben garantiert gültige Zahlen. Wenn entweder h oder w keine Zahl ist, sollten Sie die Ausnahme behandeln und The input is not a number ausgeben.
Die erste Zeile der Eingabe enthält die Höhe h, und die zweite Zeile enthält die Breite w.
Das Programm sollte eine einzelne Zeile mit der Fläche des Rechtecks ausgeben, wenn die Eingaben gültige Zahlen sind, oder The input is not a number, wenn eine oder beide Eingaben keine gültigen Zahlen sind.
Eingabe
Ausgabe
5.2
7.8
40.56
3.7
abc
The input is not a number
abc
5.5
The input is not a number
abc
def
The input is not a number
Hinweis: Die Eingabe enthält nur positive Zahlen, falls es Zahlen sind.