Mehrere Ausnahmen in Python
- Verwendung von Kommas und Klammern zum Abfangen mehrerer Ausnahmen
-
Verwenden Sie die Funktion
suppress()
, um mehrere Ausnahmen abzufangen
In der Programmierung ist eine Ausnahme ein Ereignis, das den normalen Programmfluss stört. In Python wird es als Fehler dargestellt. Eine Ausnahme kann je nach Ursache unterschiedlichen Typs sein, z. B. IndexError, KeyError und mehr.
Wir können den Block try
und except
verwenden, um Ausnahmen zu behandeln. Der Block try
enthält Code, der möglicherweise eine Ausnahme auslöst. Wenn eine Ausnahme ausgelöst wird, können Sie den alternativen Code im Block except
angeben.
Beispielsweise,
try:
print(5 / 0)
except:
print(5 / 1)
Ausgabe:
5
Das 5/0
löst eine Ausnahme aus, sodass der Code im Block except
ausgeführt wird.
Beachten Sie, dass es möglich ist, Ausnahmen auch mit dem Schlüsselwort raise
manuell auszulösen.
Wir können auch mehrere Ausnahmen in Python behandeln. Wir wissen, dass wir in Python verschiedene Arten von Ausnahmen haben, daher können wir mehrere except
-Anweisungen für verschiedene Ausnahmen haben.
Beispielsweise,
try:
raise ValueError()
except ValueError:
print("Value Error")
except KeyError:
print("Key Error")
Ausgabe:
Value Error
Es ist auch möglich, mehrere Ausnahmen mit einer except
-Anweisung abzufangen. Diese Methoden werden unten diskutiert.
Verwendung von Kommas und Klammern zum Abfangen mehrerer Ausnahmen
Der erste Weg, dies zu erreichen, besteht darin, die Ausnahmen durch ein Komma zu trennen und in Klammern zu setzen. Der folgende Code zeigt, wie.
try:
raise ValueError()
except (ValueError, KeyError):
print("Error")
Ausgabe:
Error
Wenn eine Ausnahme von der in der Klammer genannten auftritt, wird der Code in diesem Block ausgeführt. Wir können dem Ausnahmeobjekt (auch als Fehlerobjekt bezeichnet) auch einen Namen zuweisen. e
ist der am häufigsten verwendete Name für das Fehlerobjekt. Beispielsweise,
try:
raise ValueError()
except (ValueError, KeyError) as e:
print("Error")
Ausgabe:
Error
Das Schlüsselwort as
erstellt den Alias für den Namen des Objekts. Unter Python 2.5 war es möglich, die Verwendung des Schlüsselworts as
zu eliminieren, indem der Name für das Fehlerobjekt einfach durch ein Komma getrennt wurde, wie unten gezeigt.
try:
raise ValueError()
except (ValueError, KeyError), e:
print("Error")
Ausgabe:
Error
Verwenden Sie die Funktion suppress()
, um mehrere Ausnahmen abzufangen
Die Bibliothek contextlib
bietet eine sehr nützliche Funktion namens suppress()
, die auch zur Behandlung mehrerer Ausnahmen verwendet werden kann.
Diese Funktion kombiniert die Anweisungen try
, except
und pass
in einer Codezeile. Es wird mit der Anweisung with
verwendet, die auch bei der Ausnahmebehandlung verwendet wird und den Code übersichtlicher und lesbarer macht.
Der folgende Code zeigt, wie diese Funktion verwendet wird.
from contextlib import suppress
with suppress(FileNotFoundError):
os.remove("somefile.tmp")
Der obige Code entspricht dem folgenden Programm mit den Anweisungen try
, except
und pass
.
try:
os.remove("somefile.tmp")
except FileNotFoundError:
pass
Die Anweisung pass
wird verwendet, wenn wir nichts ausführen möchten, aber Fehler für leeren Code vermeiden möchten.
Wir können die Funktion suppress
für mehrere Ausnahmen verwenden, wie unten gezeigt.
from contextlib import suppress
with suppress(FileNotFoundError, KeyError):
os.remove("somefile.tmp")
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn