Python Ausnahmebehandlung: try, except, finally, raise

โšก Intelligente Zusammenfassung

Python Die Ausnahmebehandlung ermรถglicht es Ihrem Programm, auf Laufzeitfehler zu reagieren, anstatt abzustรผrzen. Hier erfahren Sie, wie try, except, finally und raise funktionieren, warum Ausnahmen wichtig sind und welche hรคufigen, integrierten Fehlertypen auftreten kรถnnen.

  • โš ๏ธ Was es ist: Eine Ausnahme ist ein Laufzeitfehler, der Python wird ausgelรถst, wenn etwas schiefgeht.
  • ๐Ÿ›ก๏ธ try / except: Ein try-Block fรผhrt riskanten Code aus; except fรคngt die Ausnahme ab und behandelt sie.
  • รฐลธยงยน schlieรŸlich: Ein finally-Block wird immer ausgefรผhrt, unabhรคngig davon, ob eine Ausnahme aufgetreten ist oder nicht.
  • ๐Ÿš€ erheben: Mit der raise-Anweisung kรถnnen Sie gezielt eine Ausnahme auslรถsen.
  • ๐Ÿ“‹ Fehlertypen: Hรคufige Ausnahmen sind ValueError, KeyError, IndexError und ZeroDivisionError.
  • ๐Ÿค– KI-Hilfe: KI-Tools wie Copilot generieren try-except-Blรถcke und schlagen Fehlertypen vor.

Python Ausnahmebehandlung

Was ist eine Ausnahmebehandlung in Python?

Eine Ausnahme ist ein Fehler, der wรคhrend der Ausfรผhrung eines Programms auftritt. Wรคhrend der Ausfรผhrung eines Programms Python erzeugt eine Ausnahme, die behandelt werden sollte, um einen Programmabsturz zu vermeiden. Python Sprache, Ausnahmen werden bei Fehlern automatisch ausgelรถst oder kรถnnen von Ihrem Code ausgelรถst und abgefangen werden.

Die Ausnahme weist darauf hin, dass das Ereignis zwar auftreten kann, diese Art von Ereignis jedoch selten auftritt. Wenn die Methode die Ausnahme nicht verarbeiten kann, wird sie an ihre Aufruferfunktion weitergeleitet. Wenn schlieรŸlich eine Ausnahme aus der Hauptfunktion ausgelรถst wird, wird das Programm abrupt beendet.

Hรคufige Beispiele fรผr Ausnahmen

  • Durch Null teilen
  • Zugriff auf eine Datei, die nicht existiert.
  • Hinzufรผgung zweier inkompatibler Typen
  • Es wird versucht, auf einen nicht vorhandenen Index einer Sequenz zuzugreifen
  • Entfernen der Tabelle vom getrennten Datenbankserver.
  • Abhebung am Geldautomaten von mehr als dem verfรผgbaren Betrag

Warum sollten Sie Ausnahmen verwenden?

Hier sind die Grรผnde fรผr die Verwendung von Ausnahmen in Python:

  • Mit der Ausnahmebehandlung kรถnnen Sie Fehlerbehandlungscode vom normalen Code trennen.
  • Eine Ausnahme ist a Python Objekt was einen Fehler darstellt.
  • Wie bei Codekommentaren helfen Ihnen Ausnahmen dabei, sich daran zu erinnern, was das Programm erwartet.
  • Es verdeutlicht den Code und verbessert die Lesbarkeit.
  • Ermรถglicht die Anregung von Konsequenzen, da die Fehlerbehandlung an einem Ort und auf eine Art und Weise erfolgt.
  • Eine Ausnahme ist eine praktische Methode zur Behandlung von Fehlermeldungen.
  • In Pythonkรถnnen Sie im Programm eine Ausnahme auslรถsen, indem Sie die Methode โ€žraise exceptionโ€œ verwenden.
  • Durch das Auslรถsen einer Ausnahme kรถnnen Sie die aktuelle Codeausfรผhrung unterbrechen und die Ausnahme wieder in den erwarteten Zustand zurรผckversetzen, bis sie behandelt wird.
  • Verarbeitung von Ausnahmen fรผr Komponenten, die diese nicht direkt verarbeiten kรถnnen.

Ausnahmeregeln

Hier sind einige grundlegende Regeln fรผr Python Ausnahmebehandlung:

  • Ausnahmen mรผssen Klassenobjekte sein
  • Fรผr Klassenausnahmen kรถnnen Sie die Try-Anweisung mit einer Ausnahmeklausel verwenden, die eine bestimmte Klasse erwรคhnt.
  • Auch wenn eine Anweisung oder ein Ausdruck syntaktisch korrekt ist, kann beim Versuch, sie auszufรผhren, ein Fehler angezeigt werden.
  • Wรคhrend der Ausfรผhrung gefundene Fehler werden als Ausnahmen bezeichnet und sind nicht unbedingt schwerwiegend.

Python Ausnahmebehandlungsmechanismus

Die Ausnahmebehandlung wird durch die folgenden 5 Schlรผsselwรถrter verwaltet:

  1. versuchen
  2. Fang
  3. endlich
  4. werfen

Python Try-Anweisung

Eine try-Anweisung enthรคlt das Schlรผsselwort try, gefolgt von einem Doppelpunkt (:) und einer Codefolge, in der Ausnahmen auftreten kรถnnen. Es enthรคlt eine oder mehrere Klauseln.

Wenn wรคhrend der Ausfรผhrung der try-Anweisung keine Ausnahmen aufgetreten sind, ignoriert der Interpreter die Ausnahmehandler fรผr diese bestimmte try-Anweisung.

Falls in einer Try-Suite eine Ausnahme auftritt, lรคuft die Try-Suite ab und die Programmsteuerung wird an den passenden Except-Handler รผbertragen, der der Try-Suite folgt.

Syntax:
try:
statement(s)

Die Catch-Anweisung

Catch-Blรถcke nehmen jeweils ein Argument an, das ist die Art von Ausnahme, die sie wahrscheinlich abfangen. Diese Argumente kรถnnen von einem bestimmten Ausnahmetyp, der variiert werden kann, bis hin zu einer Sammelkategorie von Ausnahmen reichen.

Regeln fรผr Catch-Block:

  • Sie kรถnnen einen Catch-Block definieren, indem Sie das Schlรผsselwort Catch verwenden
  • Der Parameter โ€žCatch Exceptionโ€œ wird immer in Klammern eingeschlossen
  • Es stellt immer den Ausnahmetyp dar, den der Catch-Block behandelt.
  • Ein Ausnahmebehandlungscode wird zwischen zwei geschweiften Klammern {} geschrieben.
  • Sie kรถnnen mehrere Catch-Blรถcke in einem einzigen Try-Block platzieren.
  • Sie kรถnnen einen Catch-Block nur nach dem Try-Block verwenden.
  • Der gesamte Catch-Block sollte von der Unterklasse zur Superklasse-Ausnahme geordnet werden.

Ejemplo:

try
}
catch (ArrayIndexOutOfBoundsException e) {
System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {
System.err.printin("Caught second " + e.getMessage());
}

Finally-Anweisung in Python

SchlieรŸlich wird der Block immer ausgefรผhrt, unabhรคngig davon, ob eine Ausnahme ausgelรถst wird oder nicht. Mit dem letzten Schlรผsselwort kรถnnen Sie einen Codeblock erstellen, der auf einen Try-Catch-Block folgt.

SchlieรŸlich ist die Klausel optional. Ziel ist es, Bereinigungsaktionen zu definieren, die unter allen Bedingungen ausgefรผhrt werden sollten.

try:
    raise KeyboardInterrupt
finally:
    print 'welcome, world!'
Output
Welcome, world!
KeyboardInterrupt

SchlieรŸlich wird die Klausel vor der try-Anweisung ausgefรผhrt.

Raise-Anweisung in Python

Die raise-Anweisung gibt ein Argument an, das das Ausnahmeobjekt initialisiert. Hier folgt ein Komma auf den Ausnahmenamen und ein Argument oder Tupel des Arguments, das auf das Komma folgt.

Syntax:

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

In dieser Syntax ist das Argument optional und zum Zeitpunkt der Ausfรผhrung ist der Wert des Ausnahmearguments immer โ€žnoneโ€œ.
Ejemplo:
A Python Ausnahme kann ein beliebiger Wert sein, z. B. ein String, eine Klasse, eine Zahl oder ein Objekt. Die meisten dieser Ausnahmen, die ausgelรถst werden durch Python Kern sind Klassen mit einem Argument, das eine Instanz der Klasse ist.

Wichtig Python Fehler

Fehlertyp Beschreibung
ArithmeticError ArithmeticError fungiert als Basisklasse fรผr alle arithmetischen Ausnahmen. Es wird bei Fehlern in arithmetischen Operationen ausgelรถst.
Importfehler Ein ImportError wird ausgelรถst, wenn Sie versuchen, ein nicht vorhandenes Modul zu importieren. Diese Ausnahme tritt auf, wenn Sie versucht haben, ein Modul zu importieren, das nicht existiert.ping Fehler im Modulnamen oder das Modul ist nicht im Standardpfad vorhanden.
IndexFehler Ein IndexErro wird ausgelรถst, wenn Sie versuchen, auf eine Sequenz zu verweisen, die auรŸerhalb des gรผltigen Bereichs liegt.
Schlรผsselfehler Wenn ein bestimmter Schlรผssel nicht in einem Wรถrterbuch gefunden wird, wird eine KeyError-Ausnahme ausgelรถst.
NameFehler Ein NameError wird ausgelรถst, wenn in Code auf einen Namen verwiesen wird, der niemals im lokalen oder globalen Namespace vorhanden ist.
WertFehler Ein Wertfehler wird ausgelรถst, wenn eine Funktion oder ein integrierter Vorgang ein Argument empfรคngt, das zwar vom richtigen Typ sein kann, aber keinen geeigneten Wert hat.
EOFerror Diese Art von Fehler tritt auf, wenn eine der integrierten Funktionen (input() oder raw_input()) eine EOF-Bedingung erreicht, ohne Daten zu lesen.
ZeroDivisonError Diese Art von Fehler wird bei allen numerischen Typen ausgelรถst, wenn eine Division oder ein Modul durch Null erfolgt.
IOError- Diese Art von Fehler wird ausgelรถst, wenn ein Eingabe-/Ausgabevorgang fehlschlรคgt.
Syntax-Fehler SyntaxErrors wird ausgelรถst, wenn ein Fehler auftritt in Python Syntax.
Einrรผckungsfehler Dieser Fehler wird ausgelรถst, wenn die Einrรผckung nicht richtig definiert ist

Weitere wichtige Python Ausnahmen

Exception Beschreibung
Arithmetische Ausnahme Arithmetischer Fehler, z. B. Division durch Null.
ArraylndexOutOfBoundsException Der Array-Index liegt auรŸerhalb des zulรคssigen Bereichs.
ArrayStoreException Die Zuweisung hilft Ihnen beim Array-Element eines inkompatiblen Typs.
ClassCastException Ungรผltige Besetzung
MlegalMonitorStateException Unzulรคssiger Monitorvorgang, beispielsweise das Warten auf einen nicht blockierten Thread.
MlegalStateException Umgebung oder Anwendung ist im falschen Zustand.
ClassNotFoundException Klasse nicht gefunden.
CloneNotSupportedException Versuchen Sie, ein Objekt zu klonen, das die klonbare Schnittstelle nicht implementiert.
Unzulรคssige AccessException Der Zugriff auf eine Klasse wird verweigert.
InstantiationException Tritt auf, wenn Sie versuchen, ein Objekt einer Schnittstelle oder eines absoluten Typs zu erstellen.tract-Klasse.
CloneNotSupportedException Versuchen Sie, ein Objekt zu klonen, das die Schnittstelle nicht implementiert.

Fehler vs. Ausnahmen

Fehler Ausnahmen
Alle Fehler in Python sind vom ungeprรผften Typ. Ausnahmen umfassen sowohl aktivierte als auch nicht aktivierte Typen.
Zur Laufzeit treten Fehler auf, die dem Compiler unbekannt sind. Ausnahmen kรถnnen behoben werden, indem sie mithilfe von Try-Catch-Blรถcken behandelt werden.
Fehler werden meist durch die Umgebung verursacht, in der eine Anwendung ausgefรผhrt wird. Die Anwendung selbst verursacht Ausnahmen.
Beispiele:
AuรŸerhalb des Speicherfehler
Beispiele:
Geprรผfte Ausnahmen, SQL-Ausnahme, NullPointerException usw.

Hรคufig gestellte Fragen

Die Ausnahmebehandlung ist der Prozess der Reaktion auf Laufzeitfehler, damit Ihr Programm nicht abstรผrzt. Python Verwendet try- und except-Blรถcke, um Ausnahmen abzufangen und stattdessen Wiederherstellungscode auszufรผhren.

Code Das, was fehlschlagen kรถnnte, steht innerhalb eines try-Blocks. Wenn eine Ausnahme auftritt, Python springt zum entsprechenden except-Block, der den Fehler behandelt und das Programm fortfahren lรคsst.

Ein finally-Block wird unabhรคngig davon ausgefรผhrt, ob eine Ausnahme aufgetreten ist oder nicht. Daher eignet er sich ideal fรผr Aufrรคumarbeiten wie das SchlieรŸen von Dateien oder das Freigeben von Ressourcen, die immer erfolgen mรผssen.

Die raise-Anweisung lรถst absichtlich eine Ausnahme aus. Sie kรถnnen eine integrierte Ausnahme wie ValueError oder eine benutzerdefinierte Ausnahme auslรถsen, um zu signalisieren, dass ein Fehler aufgetreten ist.

Fehler wie Syntaxfehler lassen sich in der Regel nicht beheben und fรผhren zum Programmabbruch. Ausnahmen sind Laufzeitereignisse, die Sie mit try- und except-Blรถcken abfangen und behandeln kรถnnen.

KI-Assistenten wie GitHub Copilot vervollstรคndigen try-except-Blรถcke automatisch, schlagen den richtigen Ausnahmetyp zum Abfangen vor und generieren schlieรŸlich Aufrรคumcode aus einer kurzen Beschreibung Ihrer Logik.

Ja. KI-gestรผtzte Tools kรถnnen das Verpacken automatisieren.ping Riskanter Code in try-except-Blรถcken; empfehlen Sie die Verwendung spezifischer Ausnahmen anstelle von einfachen except-Anweisungen und fรผgen Sie Protokollierung hinzu, damit Fehler leichter zu debuggen sind.

Zu den gรคngigen integrierten Ausnahmen gehรถren ValueError, TypeError, KeyError, IndexError, ImportError, NameError und ZeroDivisionError. Jede signalisiert ein spezifisches Laufzeitproblem in Ihrem Code.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: