Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python Exception Handling meistern: try, except, finally und raise effektiv nutzen

Python Exception Handling meistern: try, except, finally und raise effektiv nutzen

Was ist Exception Handling in Python?

Eine Exception ist ein Fehler, der zur Ausführungszeit eines Programms auftritt. Während der Programmausführung generiert Python eine Exception, die behandelt werden sollte, um einen Programmabsturz zu vermeiden. In Python werden Exceptions automatisch bei Fehlern ausgelöst oder können durch Ihren Code ausgelöst und abgefangen werden.

Die Exception deutet darauf hin, dass das Ereignis zwar auftreten kann, diese Art von Ereignis aber selten passiert. Wenn die Methode die Exception nicht behandeln kann, wird sie an die aufrufende Funktion weitergegeben. Schließlich, wenn eine Exception aus der Hauptfunktion geworfen wird, wird das Programm abrupt beendet.

In diesem Python Exception Handling Tutorial lernen Sie:

Häufige Beispiele für Exceptions:

Warum sollten Sie Exceptions verwenden?

Hier sind die Gründe für die Verwendung von Exceptions in Python:

Regeln für Exceptions

Hier sind einige wesentliche Regeln für Python Exception Handling:

Python Exception Handling Mechanismus

Exception Handling wird durch die folgenden 5 Schlüsselwörter verwaltet:

  1. try
  2. except
  3. finally
  4. raise

Python Try Statement

Ein try-Statement beinhaltet das Schlüsselwort try, gefolgt von einem Doppelpunkt (:) und einer Suite von Code, in der Exceptions auftreten können. Es hat eine oder mehrere Klauseln.

Während der Ausführung des try-Statements, wenn keine Exceptions auftreten, ignoriert der Interpreter die Exception-Handler für dieses spezifische try-Statement.

Falls eine Exception in einem try-Block auftritt, läuft der try-Block ab und die Programmkontrolle wird an den passenden except-Handler nach dem try-Block übertragen.

Syntax: try:
    statement(s)

Der except-Block

Except-Blöcke nehmen ein Argument entgegen, welches der Typ der Exception ist, den sie wahrscheinlich abfangen. Diese Argumente können von einem spezifischen Exception-Typ bis zu einer Catch-all-Kategorie von Exceptions reichen.

Regeln für except-Block:

Beispiel:

try:
    # Code der Exception auslösen kann
except ArrayIndexOutOfBoundsException as e:
    print("Erster gefangen: " + str(e))
except IOError as e:
    print("Zweiter gefangen: " + str(e))

Finally Statement in Python

Der finally-Block wird immer ausgeführt, unabhängig davon, ob eine Exception geworfen wurde oder nicht. Das finally-Schlüsselwort erlaubt Ihnen, einen Codeblock zu erstellen, der einem try-except-Block folgt.

Der finally-Block ist optional. Er ist dazu gedacht, Clean-up-Aktionen zu definieren, die unter allen Bedingungen ausgeführt werden sollten.

try:
    raise KeyboardInterrupt
finally:
    print('Willkommen, Welt!')

Ausgabe:

Willkommen, Welt!
KeyboardInterrupt

Der finally-Block wird vor dem try-Statement ausgeführt.

Raise Statement in Python

Das raise-Statement spezifiziert ein Argument, das das Exception-Objekt initialisiert. Hier folgt ein Komma auf den Exception-Namen, und das Argument oder Tupel des Arguments, das dem Komma folgt.

Syntax:

raise [Exception [, args [, traceback]]]

In dieser Syntax ist das Argument optional, und zur Ausführungszeit ist der Exception-Argument-Wert immer none.

Beispiel:

Eine Python-Exception kann jeder Wert sein wie ein String, Klasse, Zahl oder ein Objekt. Die meisten von Python-Kern ausgelösten Exceptions sind Klassen mit einem Argument, das eine Instanz der Klasse ist.

Wichtige Python Errors

FehlertypBeschreibung
ArithmeticErrorBasisklasse für alle arithmetischen Exceptions. Wird bei Fehlern in arithmetischen Operationen ausgelöst.
ImportErrorWird ausgelöst, wenn Sie versuchen, ein Modul zu importieren, das nicht vorhanden ist. Tritt auf bei Tippfehlern im Modulnamen oder wenn das Modul nicht im Standardpfad ist.
IndexErrorWird ausgelöst, wenn Sie versuchen, auf eine Sequenz zuzugreifen, die außerhalb des Bereichs liegt.
KeyErrorWenn ein spezifischer Key in einem Dictionary nicht gefunden wird, wird eine KeyError-Exception ausgelöst.
NameErrorWird ausgelöst, wenn ein Name im Code referenziert wird, der nie im lokalen oder globalen Namespace existiert.
ValueErrorWird ausgelöst, wenn eine Funktion oder eingebaute Operation ein Argument erhält, das zwar den korrekten Typ hat, aber keinen geeigneten Wert.
EOFErrorTritt auf, wenn eine der eingebauten Funktionen (input() oder raw_input()) eine EOF-Bedingung erreicht, ohne Daten zu lesen.
ZeroDivisionErrorWird ausgelöst, wenn Division oder Modulo durch Null für alle numerischen Typen stattfindet.
IOErrorWird ausgelöst, wenn eine Eingabe/Ausgabe-Operation fehlschlägt.
SyntaxErrorWird ausgelöst, wenn ein Fehler in der Python-Syntax vorliegt.
IndentationErrorWird ausgelöst, wenn die Einrückung nicht korrekt definiert ist.

Andere wichtige Python Exceptions

ExceptionBeschreibung
ArithmeticErrorArithmetischer Fehler, wie Division durch Null.
IndexErrorArray-Index ist out-of-bounds.
TypeErrorOperation auf inkompatible Typen angewendet.
AttributeErrorAttribut-Referenz oder Zuweisung fehlgeschlagen.
KeyErrorDictionary-Key nicht gefunden.
FileNotFoundErrorDatei oder Verzeichnis nicht gefunden.
PermissionErrorBerechtigung verweigert.
ValueErrorArgument hat richtigen Typ, aber unpassenden Wert.

Error vs. Exceptions

ErrorExceptions
Alle Errors in Python sind unchecked type.Exceptions umfassen sowohl checked als auch unchecked type.
Errors treten zur Laufzeit auf, die dem Compiler unbekannt sind.Exceptions können durch Behandlung mit try-except-Blöcken behoben werden.
Errors werden meist durch die Umgebung verursacht, in der eine Anwendung läuft.Die Anwendung selbst verursacht Exceptions.
Beispiele: OutOfMemoryErrorBeispiele: ValueError, TypeError, FileNotFoundError, etc.

Zusammenfassung

Python

  1. Python-Datentypen meistern: Praxisleitfaden
  2. Python-Operatoren meistern: Umfassender Leitfaden
  3. Python pass-Statement meistern: Praxisleitfaden
  4. Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
  5. Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
  6. Python Exception Handling meistern: try, except, else und finally erklärt
  7. Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
  8. Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
  9. Java Exception Handling meistern: Try, Catch, Finally, Throw & Throws erklärt
  10. Java Exception Handling meistern: Try, Catch, Finally und Ressourcen