Ausnahmebehandlung in Python: Behandlung von Ausnahmen mit Try Except
Veröffentlicht: 2021-06-29Beim Auftreten eines Fehlers wird ein Python-Programm beendet. Die Fehler sind im Allgemeinen Probleme, die in einem Programm auftreten, das seine Ausführung stoppt. Die Fehler können auf einen Syntaxfehler zurückzuführen sein oder eine Ausnahme darstellen. Wenn der Parser eine falsche Anweisung erkennt, tritt ein Syntaxfehler auf.
Wenn der Code mit der richtigen Syntax jedoch einen Fehler generiert, wird dies als Ausnahme bezeichnet. In Python sind verschiedene eingebaute Ausnahmen verfügbar. Diese werden beim Auftreten interner Ereignisse ausgelöst, bei denen der normale Ablauf eines Programms geändert wird.
Daher können Ausnahmen als bestimmte ungewöhnliche Programmbedingungen definiert werden, die zu einer Unterbrechung des Codes führen und daher den Programmablauf abbrechen.
Die Ausführung eines Programms stoppt, sobald es auf eine Ausnahme stößt. Dies stoppt die Ausführung des Codes weiter. Ausnahmen sind daher Laufzeitfehler, die nicht vom Python-Skript behandelt werden können.
Für die Ausnahmebehandlung in Python bietet die Skriptsprache Python eine Lösung, damit die Ausführung des Codes weitergeht und es keine Unterbrechungen gibt. Das Fehlen einer Ausnahmebehandlung stoppt die Ausführung des Codes, der nach dem Code vorhanden ist, der eine Ausnahme auslöst.
In Python sind mehrere eingebaute Optionen verfügbar, die die Ausführung eines Programms ohne Unterbrechung ermöglichen, einschließlich der üblichen Ausnahmen. Darüber hinaus gibt es eine Bereitstellung von benutzerdefinierten Python-Ausnahmen . Für jedes Python-Programm können folgende allgemeine Ausnahmen ausgelöst werden:
- ZeroDivisionError: Dieser Ausnahmetyp tritt auf, wenn Null zum Teilen einer Zahl verwendet wird.
- NameError: Immer wenn ein Programm einen Namen nicht finden kann, sei es global oder lokal, tritt dieser Ausnahmetyp auf.
- IndentationError: Ein falscher Einzug führt zum IndentationError.
- IOError : Fehler einer Eingabe-Ausgabe-Operation führt zu IOError.
- EOFError: Tritt im Dauerbetrieb eines Programms auch dann auf, wenn die
Dateiende ist erreicht.
Inhaltsverzeichnis
Auslösen einer Ausnahme
Zum Werfen einer Ausnahme unter bestimmten Bedingungen wird die Erhöhung verwendet.
Die Ausführung des Programms wird angehalten und die zugehörige Ausnahme auf dem Bildschirm angezeigt. Die Anzeige der Ausnahmen informiert die Benutzer darüber, was das zugrunde liegende Problem sein könnte.
In Python können wir durch die Verwendung der Raise-Klausel eine Ausnahme auslösen. Die Anwendung ist nützlich, wenn das Programm durch Auslösen einer Ausnahme gestoppt werden muss.
Beispiel: Angenommen, ein Programm benötigt ungefähr 1 GB Speicher für seine Ausführung und versucht, 1 GB zu belegen, in diesem Fall kann eine Ausnahme ausgelöst werden, um die Ausführung des Programms zu stoppen.
Syntax zum Auslösen einer Ausnahme:
Ausnahmeklasse, <Wert>
Deswegen,
- 'raise' wird zum Auslösen einer Ausnahme in einem Programm verwendet.
- Einer Ausnahme kann ein Wert bereitgestellt werden, der der Klammer bereitgestellt werden kann.
- Der Zugriff auf den Wert kann mit dem Schlüsselwort „as“ erfolgen. Der der Ausnahme gegebene Wert kann in der mit „e“ bezeichneten Referenzvariable gespeichert werden.
- Zur Angabe eines Ausnahmetyps kann der Wert an eine Ausnahme übergeben werden.
Behauptungsfehler
In Python kann eine Zusicherung gemacht werden, anstatt das Programm abstürzen zu lassen. Es wird behauptet, dass eine bestimmte Bedingung vom Programm erfüllt wird. Das Programm läuft weiter, wenn die Bedingung wahr ist. Andernfalls wird vom Programm eine AssertionError-Ausnahme ausgelöst, wenn sich herausstellt, dass die Bedingung falsch ist.
Behandeln von Ausnahmen durch den try-and-except-Block
In Python geworfene Ausnahmen werden abgefangen und dann von den try-and-except-Blöcken in Python behandelt. Der Code innerhalb des try-Blocks wird normal als Teil des Programms ausgeführt. Der andere Block enthält Anweisungen, die als Reaktion auf die vom Programm im try-Block ausgelösten Ausnahmen ausgeführt werden.
Das Programm löst eine Ausnahme aus, wenn es einen Fehler in einem syntaktisch korrekten Code findet. Wenn die ausgelösten Ausnahmen nicht richtig behandelt werden, kommt es zu einem Absturz in den Programmen. In solchen Szenarien bestimmt der Except-Block die Antwort des Programms auf diese Ausnahme.
Die Anwendung der Try-and-Except-Klausel wird am besten durch das folgende Beispiel aus der erwähnten Quelle verständlich.
In diesem Fall läuft das Programm immer dann weiter, wenn eine Ausnahme auftritt, und informiert den Benutzer, dass das Programm nicht erfolgreich war, anstatt eine leere Ausgabe auszugeben.
Kasse : Ideen und Themen für Python-Projekte
Das Programm zeigte den Fehlertyp, der durch den Aufruf der Funktion geworfen wurde. Der von der Funktion ausgelöste Fehler kann jedoch abgefangen werden, um eine Vorstellung davon zu bekommen, was tatsächlich schief gelaufen ist.
Wenn Sie den Code auf einem Windows-Computer ausführen, wird Folgendes generiert
Die angezeigte Meldung weist zunächst auf einen AssertionError hin, durch den der Benutzer darüber informiert wird, dass die Funktion nur auf einem Linux-Betriebssystem ausgeführt werden kann. Die zweite Meldung gibt außerdem Auskunft darüber, welche Funktion nicht ausgeführt werden konnte.
Nicht vorhanden, wenn file.log eine Ausgabe mit der Meldung „Could not open file.log“ generiert.
Das Programm wird weiterhin ausgeführt, da es sich um eine Nachricht handelt, die die Informationen an den Benutzer weiterleitet. Viele integrierte Ausnahmen sind in Python-Dokumenten verfügbar. Eine Ausnahme wie beschrieben ist unten dargestellt.
Das Nichtvorhandensein von file.log erzeugt in diesem Fall die folgende Ausgabe.
Verschiedene Ausnahmen können durch die Verwendung von mehr Funktionsaufrufen in der try-Klausel abgefangen werden. Wenn jedoch eine Ausnahme erkannt wird, werden die Anweisungen der try-Klausel beendet.
Die else-Klausel
Die Verwendung der else-Klausel von Anweisungen kann dabei helfen, das Programm anzuweisen, einen Block von Anweisungen nur dann auszuführen, wenn es keine Ausnahmen gibt.
Die else-Klausel wurde nur ausgeführt, weil es keine Ausnahmen gab. Wenn der Code Ausnahmen enthält, ergibt sich Folgendes.
Benutzerdefinierte Python-Ausnahmen
Python hat eine Reihe von eingebauten Ausnahmen, die einen Fehler ausgeben, wenn etwas im Programm nicht stimmt. Der Benutzer muss jedoch in Fällen, in denen sein Zweck erfüllt werden soll, einige benutzerdefinierte Ausnahmen erstellen.
Zum Definieren der benutzerdefinierten Ausnahmen kann eine neue Klasse erstellt werden. Diese Klassen müssen entweder direkt oder indirekt von der Klasse der eingebauten Ausnahmen abgeleitet werden.
Die benutzerdefinierte Klasse CustomError wird erstellt, die von der Klasse Exception geerbt wird. Ähnlich wie die anderen Ausnahmen werden auch diese Ausnahmen durch die Verwendung von 'raise' mit einer optionalen Fehlermeldung ausgelöst.
Die benutzerdefinierten Ausnahmen sollten immer dann in einer separaten Datei abgelegt werden, wenn ein großes Python-Programm entwickelt wird. Dies ist im Allgemeinen eine bewährte Vorgehensweise und wird von den meisten Standardmodulen befolgt, in denen die Ausnahmen separat als „errors.py“ oder „exceptions.py“ definiert werden.
Die benutzerdefinierten Python-Ausnahmen sind einfach und da die normalen Klassen alles implementieren, folgen sie auch den gleichen.
Syntax und Beispiele
Betrachten wir zwei Variablen, nämlich a und b. Die Eingabe in die Variablen wird vom Benutzer übernommen und die Division der Zahlen durchgeführt. Nun, wenn der vom Benutzer eingegebene Nenner eine Null ist.
Zur Behandlung dieser Ausnahmen können dem Programm Try-Except-Blöcke hinzugefügt werden. Für jede Art von Code, der zu dem Verdacht führt, Ausnahmen auszulösen. Es sollte im try-Block von Anweisungen platziert werden.
Syntax eines try-Blocks
Versuchen:
#Code
außer Ausnahme1:
#Code
außer Ausnahme2:
#Code
#Code
Es zeigt die Verwendung von try-außer-Anweisungen, bei denen der Code in den try-Block eingefügt und ausgeführt wird, wenn keine Ausnahmen im Code vorhanden sind.
Syntax der else-Anweisung mit try-außer
Versuchen
#try-Anweisungen
Außer Ausnahme1
#Code
Anders
#Ausführung von Code, wenn keine Ausnahme vorliegt
Ein paar wichtige Punkte:
- Die Ausnahme darf nicht durch eine Ausnahmeanweisung in Python angegeben werden.
- Mehrere Ausnahmen können in einem Code durch die Verwendung eines try-Blocks deklariert werden, da es viele Anweisungen innerhalb eines try-Blocks geben kann, die Ausnahmen unterschiedlichen Typs auslösen können.
- Ein else-Block kann mit einem try-Block angegeben werden, der ausgeführt wird, wenn keine Ausnahmen vom try-Block ausgelöst werden.
- Der else-Block sollte Anweisungen enthalten, die nicht für das Auslösen von Ausnahmen verantwortlich sind.
Lesen Sie auch: Die wichtigsten Gründe, warum Python bei Entwicklern beliebt ist
Fazit
In diesem Artikel haben wir das Konzept der Ausnahmebehandlung in Python anhand einiger Beispiele kurz besprochen. Zusammen mit den eingebauten Ausnahmen werden auch die benutzerdefinierten Python -Ausnahmen kurz definiert. Jetzt können Sie die Bedeutung von Ausnahmen und die Behandlung von Ausnahmen in Python kennen .
Wenn Sie daran interessiert sind, mehr über die Python-Sprache und ihre Implementierung in Data Science zu erfahren, können Sie sich den folgenden Kurs von upGrad „Executive PG Program in Data Science“ ansehen.
Der Online-Kurs richtet sich an alle Berufseinsteiger im Alter von 21 bis 45 Jahren. Mit über 20 Live-Sitzungen und praktischen Kenntnissen in über 14 Tools und Programmiersprachen führt Sie der Kurs zur Perfektion. Alle Anfragen können gesendet werden. Unser Team wird Ihnen helfen.
Wie viele Arten von Fehlern gibt es in Python?
Es gibt überwiegend 2 unterscheidbare Kategorien von Fehlern in Python – Syntaxfehler und Ausnahmen. Syntaxfehler: Syntaxfehler werden verursacht, wenn eine Codezeile eine fehlerhafte Syntax aufweist. Dies ist der häufigste Fehler und wird während der Analyse des Programms erkannt. Zu den Fehlern gehören das Fehlen eines Operators, falsche Einrückungen, Rechtschreibfehler bei Schlüsselwörtern, fehlende Doppelpunkte, das Verlassen von Klammern und andere winzige Fehler in der Syntax. Ausnahmen: Ausnahmen sind die Fehler, die während der Ausführung des Programms erkannt werden. Nachdem das Programm den Syntaxtest erfolgreich absolviert hat, durchläuft es eine Prüfung auf logische Fehler. Python verfügt über eine umfangreiche Sammlung integrierter Ausnahmen. Sie können auch benutzerdefinierte benutzerdefinierte Ausnahmen erstellen.
Was ist der Hauptunterschied zwischen einem Syntaxfehler und einer Ausnahme?
Ein Syntaxfehler tritt auf, wenn der Code oder eine Codezeile syntaktisch falsch ist. Wenn ein Syntaxfehler in einem Code auftritt, wird das Programm beendet. Ein Syntaxfehler könnte auftreten, wenn ein Doppelpunkt fehlt oder sogar ein Schlüsselwort falsch geschrieben wird.
Ausnahmen sind jedoch ganz anders. Eine Ausnahme kann als Anomalie angesehen werden, die den Ablauf des Programms stört. Auch wenn das Programm syntaktisch korrekt ist, kann die Ausnahme auftreten. Anders als bei einem Fehler wird der Code bis zu der Zeile ausgeführt, in der die Ausnahme auftritt.
Welche Rolle spielt das Schlüsselwort raise in Python?
Das Schlüsselwort raise wird zum Auslösen einer Ausnahme in Python verwendet. Die Art des Fehlers kann auch zusammen ausgelöst werden, und Sie können auch Text hinzufügen, der zum Zeitpunkt der Ausnahmeauslösung angezeigt werden soll. Es ist sehr praktisch, wenn Sie Ihren Code auf Eingaben überprüfen müssen.