Mehrere Ausnahmen in Python

Manav Narula 18 Juli 2021
  1. Verwendung von Kommas und Klammern zum Abfangen mehrerer Ausnahmen
  2. Verwenden Sie die Funktion suppress(), um mehrere Ausnahmen abzufangen
Mehrere Ausnahmen in Python

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 Narula avatar Manav Narula avatar

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

Verwandter Artikel - Python Exception