Was ist eine Ausnahme in Python?
Eine Ausnahme ist ein Fehler, der zum Zeitpunkt der Ausführung eines Programms auftritt. Während der Ausführung eines Programms generiert Python jedoch eine Ausnahme, die behandelt werden sollte, um einen Absturz Ihres Programms zu vermeiden. In der Python-Sprache werden Ausnahmen bei Fehlern automatisch ausgelöst, oder sie können von Ihrem Code ausgelöst und abgefangen werden.
Die Ausnahme gibt an, dass diese Art von Ereignis selten auftritt, obwohl das Ereignis auftreten kann. Wenn die Methode die Ausnahme nicht verarbeiten kann, wird sie an ihre Aufruferfunktion übergeben. Wenn eine Ausnahme aus der Hauptfunktion geworfen wird, wird das Programm schließlich abrupt beendet.
In diesem Python-Tutorial zur außergewöhnlichen Handhabung lernen Sie:
- Was ist eine Ausnahme in Python?
- Häufige Beispiele für Ausnahmen
- Warum sollten Sie Ausnahmen verwenden?
- Ausnahmeregeln
- Außergewöhnlicher Handhabungsmechanismus
- Die Try-Anweisung
- Die catch-Anweisung
- Die Raise Statement
- Wichtige Python-Fehler
- Andere wichtige Python-Ausnahmen
- Fehler vs. Ausnahmen
Häufige Beispiele für Ausnahmen:
- Durch Null teilen
- Zugriff auf eine nicht vorhandene Datei.
- Hinzufügen von zwei inkompatiblen Typen
- Versuch, auf einen nicht vorhandenen Index einer Sequenz zuzugreifen
- Entfernen der Tabelle vom getrennten Datenbankserver.
- Geldautomatenabhebung 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 den Fehlerbehandlungscode vom normalen Code trennen.
- Eine Ausnahme ist ein Python-Objekt, das 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 es Ihnen, Konsequenzen zu stimulieren, da die Fehlerbehandlung an einem Ort und auf eine Weise erfolgt.
- Eine Ausnahme ist eine bequeme Methode zur Behandlung von Fehlermeldungen.
- In Python können Sie eine Ausnahme im Programm mithilfe der Methode zum Auslösen von Ausnahmen auslösen.
- Das Auslösen einer Ausnahme hilft Ihnen dabei, die aktuelle Codeausführung zu unterbrechen und die Ausnahme bis zur Behandlung wieder auf die Erwartung zurückzusetzen.
- Verarbeitung von Ausnahmen für Komponenten, die diese nicht direkt verarbeiten können.
Ausnahmeregeln
Hier sind einige wesentliche Regeln für die Behandlung von Python-Ausnahmen:
- Ausnahmen müssen Klassenobjekte sein
- Für Klassenausnahmen können Sie die try-Anweisung mit einer Ausnahmeklausel verwenden, in der eine bestimmte Klasse erwähnt wird.
- Selbst wenn eine Anweisung oder ein Ausdruck syntaktisch korrekt ist, wird möglicherweise ein Fehler angezeigt, wenn versucht wird, sie auszuführen.
- Während der Ausführung gefundene Fehler werden als Ausnahmen bezeichnet und sind nicht unbedingt schwerwiegend.
Außergewöhnlicher Handhabungsmechanismus
Die Ausnahmebehandlung wird mit den folgenden 5 Schlüsselwörtern verwaltet:
- Versuchen
- Fang
- endlich
- werfen
Die Try-Anweisung
Eine try-Anweisung enthält das Schlüsselwort try, gefolgt von einem Doppelpunkt (:) und einer Codesuite, in der Ausnahmen auftreten können. Es hat eine oder mehrere Klauseln.
Wenn während der Ausführung der try-Anweisung keine Ausnahmen aufgetreten sind, ignoriert der Interpreter die Ausnahmebehandlungsroutinen für diese bestimmte try-Anweisung.
Falls in einer Try-Suite eine Ausnahme auftritt, läuft die Try-Suite ab und die Programmsteuerung wird nach der Try-Suite an den Matching-außer-Handler übertragen.
Syntax:try:statement(s)
Die catch-Anweisung
Catch-Blöcke nehmen jeweils ein Argument an. Dies ist die Art von Ausnahme, die wahrscheinlich abgefangen wird. Diese Argumente können von einem bestimmten Ausnahmetyp, der variiert werden kann, bis zu einer Gesamtkategorie von Ausnahmen reichen.
Regeln für den Fangblock:
- Sie können einen catch-Block mit dem Schlüsselwort catch definieren
- Der Parameter Catch Exception steht immer in Klammern
- Es stellt immer den Ausnahmetyp dar, den 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 erst nach dem try-Block verwenden.
- Der gesamte Catch-Block sollte von der Ausnahme der Unterklasse zur Oberklasse geordnet werden.
Beispiel:
try}catch (ArrayIndexOutOfBoundsException e) {System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {System.err.printin("Caught second " + e.getMessage());}
Endlich blockieren
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 einem Try-Catch-Block folgt.
Schließlich ist die Klausel optional. Es ist beabsichtigt, Bereinigungsaktionen zu definieren, die unter allen Bedingungen ausgeführt werden sollen.
try:raise KeyboardInterruptfinally:print 'welcome, world!'OutputWelcome, world!KeyboardInterrupt
Schließlich wird die Klausel vor der try-Anweisung ausgeführt.
Die Raise Statement
Die Raise-Anweisung gibt ein Argument an, das das Ausnahmeobjekt initialisiert. Hier folgt ein Komma dem Ausnahmenamen und dem 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 keiner.
Beispiel:
Eine Python-Ausnahme kann ein beliebiger Wert wie eine Zeichenfolge, eine Klasse, eine Zahl oder ein Objekt sein. Die meisten dieser Ausnahmen, die vom Python-Kern ausgelöst werden, sind Klassen mit einem Argument, das eine Instanz der Klasse ist.
Wichtige Python-Fehler
Fehlertyp | Beschreibung |
ArithmeticError | ArithmeticError fungiert als Basisklasse für alle arithmetischen Ausnahmen. Es wird für Fehler in arithmetischen Operationen ausgelöst. |
ImportError | ImportError wird ausgelöst, wenn Sie versuchen, ein Modul zu importieren, das nicht vorhanden ist. Diese Art von Ausnahme tritt auf, wenn Sie einen Tippfehler im Modulnamen oder im Modul gemacht haben, das nicht im Standardpfad vorhanden ist. |
IndexError | Ein IndexError wird ausgelöst, wenn Sie versuchen, auf eine Sequenz zu verweisen, die außerhalb des Bereichs liegt. |
KeyError | Wenn ein bestimmter Schlüssel in einem Wörterbuch nicht gefunden wird, wird eine KeyError-Ausnahme ausgelöst. |
NameError | Ein NameError wird ausgelöst, wenn im Code auf einen Namen verwiesen wird, der im lokalen oder globalen Namespace niemals vorhanden ist. |
ValueError | Ein Wertefehler wird ausgelöst, wenn eine Funktion oder eine integrierte Operation ein Argument empfängt, das möglicherweise vom richtigen Typ ist, 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 ausgelöst, wenn für alle numerischen Typen eine Division oder ein Modul durch Null erfolgt. |
IOError- | Diese Art von Fehler wird ausgelöst, wenn eine Eingabe- / Ausgabeoperation fehlschlägt. |
Syntax-Fehler | SyntaxErrors werden ausgelöst, wenn ein Fehler in der Python-Syntax vorliegt. |
IndentationError | Dieser Fehler tritt auf, wenn der Einzug nicht richtig definiert ist |
Andere wichtige Python-Ausnahmen
Ausnahme | Beschreibung |
ArithmeticException | Arithmetischer Fehler, z. B. Division durch Null. |
ArraylndexOutOfBoundsException | Der Array-Index ist außerhalb der Grenzen. |
ArrayStoreException | Die Zuweisung hilft Ihnen beim Array-Element eines inkompatiblen Typs. |
ClassCastException | Ungültige Besetzung |
MlegalMonitorStateException | Unzulässiger Monitorbetrieb, z. B. Warten auf einen entsperrten Thread. |
MlegalStateException | Umgebung oder Anwendung befindet sich im falschen Zustand. |
ClassNotFoundException | Klasse nicht gefunden. |
CloneNotSupportedException | Versuchen Sie, ein Objekt zu klonen, das die klonbare Schnittstelle nicht implementiert. |
Illegale AccessException | Der Zugriff auf eine Klasse wird verweigert. |
InstantiationException | Tritt auf, wenn Sie versuchen, ein Objekt einer Schnittstelle oder einer abstrakten Klasse zu erstellen. |
CloneNotSupportedException | Versuchen Sie, ein Objekt zu klonen, das die Schnittstelle nicht implementiert. |
Fehler vs. Ausnahmen
Error | Ausnahmen |
Alle Fehler in Python sind vom ungeprüften Typ. | Ausnahmen sind sowohl aktivierter als auch nicht aktivierter Typ. |
Zur Laufzeit treten Fehler auf, die dem Compiler unbekannt sind. | Ausnahmen können wiederhergestellt werden, indem sie mit Hilfe von Try-Catch-Blöcken behandelt werden. |
Fehler werden hauptsächlich durch die Umgebung verursacht, in der eine Anwendung ausgeführt wird. | Die Anwendung selbst verursacht Ausnahmen. |
Beispiele: OutofMemoryError | Beispiele: Überprüfte Ausnahmen, SQL-Ausnahme, NullPointerException usw. |
Zusammenfassung
- Eine Ausnahme ist ein Fehler, der während der Ausführung eines Programms aufgetreten ist.
- Die Ausnahme gibt an, dass diese Art von Ereignis selten auftritt, obwohl das Ereignis auftreten kann.
- Häufige Beispiele für Ausnahmen sind 1) Division durch Null, 2) Zugriff auf eine nicht vorhandene Datei, 3) Hinzufügen von zwei inkompatiblen Typen.
- Eine Ausnahme ist ein Python-Objekt, das einen Fehler darstellt.
- Eine try-Anweisung enthält das Schlüsselwort try, gefolgt von einem Doppelpunkt (:) und einer Codesuite, in der Ausnahmen auftreten können. Es hat eine oder mehrere Klauseln.
- Catch-Blöcke nehmen jeweils ein Argument an. Dies ist die Art von Ausnahme, die wahrscheinlich abgefangen wird.
- Die Raise-Anweisung gibt ein Argument an, das das Ausnahmeobjekt initialisiert.
- Schließlich wird der Block immer ausgeführt, unabhängig davon, ob eine Ausnahme ausgelöst wird oder nicht.