Ausnahmebehandlung in Python

Ausnahmebehandlung in Python
Wenn wir einen Code ausführen, der Fehler enthält, wird der Fehler in der Ausgabe angezeigt, indem die Ausführung des Programms gestoppt wird. Einige Fehler werden möglicherweise nicht von den Benutzern erkannt und erstellen eine unerwünschte Situation für sie. Wenn der Fehler jedoch in einem verständlichen Format für die Benutzer angezeigt werden kann, ist es für sie einfach, den Grund für den Fehler zu kennen. In jeder objektorientierten Programmierung, Versuche oder Versuchen Sie es mit dem Catch-final Block wird verwendet, um Fehler zu behandeln und sie in einem lesbaren Format anzuzeigen, das als Ausnahmebehandlung bezeichnet wird. Wie Ausnahmehandling im Python -Skript durchgeführt werden kann, wird in diesem Tutorial gezeigt.

Syntax :

versuchen:
Block…
außer Ausnahme:
Handler…
anders:
Block…
Endlich:
Block…

Hier, wenn ein Fehler beim Ausführen der Anweisungen von auftritt versuchen Block wird dann eine Ausnahme erzeugt und den Fehler auf die entsprechenden außer Handler. Mehrere Fehler können in einem einzigen generiert werden versuchen Block und dann müssen Sie mehrere schreiben außer Handler. Die Aussagen der anders Block wird ausgeführt, wenn in der kein Fehler auftritt versuchen Block. Die Aussagen der Endlich Block wird ausgeführt, wenn ein Fehler auftritt oder nicht. Für Ausnahmebehandlung verwendet anders Und Endlich Blöcke sind nicht wesentlich. Im nächsten Teil des Tutorials werden verschiedene Arten der Ausnahmebehandlung in Python erklärt.

Beispiel 1: Verwendung eines einzelnen Try-Except-Blocks zur Validierung numerischer Daten:

Dieses Beispiel zeigt die sehr einfache Verwendung der Ausnahmehandhabung in Python. Im versuchen Block, zwei Eingänge werden vom Benutzer entnommen, einer ist ein Stringwert und ein anderer ist ein numerischer Wert. Wenn der Benutzer einen Zeichenfolgewert anstelle des numerischen Wertes für die zweite Eingabe eingibt, dann die ValueError Ausnahme wird von generiert von Python3 und eine benutzerdefinierte Fehlermeldung wird von angezeigt außer Block.

#!/usr/bin/env python3
# Definieren Sie den Try -Block
versuchen:
# Nehmen Sie alle Daten als Zeichenfolge
name = input ("Geben Sie Ihren Namen ein: \ n")
# Nehmen Sie numerische Daten
Alter = int (input ("Geben Sie Ihr Alter ein: \ n"))
# Drucken Sie die formatierten Daten mit Namen und Alter
drucken ("Hallo %s, du bist %S Jahre alt." %(name Alter))
# Eingabefehler handhaben
außer (ValueError):
# Benutzerdefinierte Fehlermeldung drucken
print ("falsche Eingabe! Sie müssen eine Nummer als Alter eingeben."))

Ausgang:

Das Skript wird zweimal in der folgenden Ausgabe mit der falschen Eingabe und der korrekten Eingabe ausgeführt. Beim ersten Mal, wenn der Benutzer tippt 'Einunddreißig' als Alterswert für die zweite Eingabe, die numerischen Wert nimmt, dann a ValueError wird generiert und die Fehlermeldung aus dem Ausnahmeblock angezeigt. Das zweite Mal wird kein Fehler für die korrekten Eingabewerte generiert.

Beispiel-2: Verwendung von mehreren Aussenkung außer Block, um mehrere Fehler zu behandeln:

Wie Sie mehrere außer Block verwenden können, um mehrere Fehler zu bewältigen, wird in diesem Beispiel angezeigt. In diesem Skript werden zwei Arten von Fehlern behandelt. Ein Dateiname wird vom Benutzer zum Lesen als Eingabe angenommen. Wenn die Datei nicht vorhanden ist, wird sie generiert ein ioError Ausnahme und wenn die Datei, aber leer ist, wird eine benutzerdefinierte Ausnahme hervorgerufen. Dafür werden in diesem Skript zwei außer Blöcken verwendet. Wenn keiner der Fehler auftritt, wird der Inhalt der Datei angezeigt.

#!/usr/bin/env python3
# Betriebssystemmodul importieren
OS importieren
# Definieren Sie den Try -Block
versuchen:
# Nehmen Sie den Dateinamen als Eingabe
Dateiname = input ('Eingeben Sie einen Dateinamen \ n')
# Öffnen Sie die Datei zum Lesen
Datei_handler = open (Dateiname)
# Setzen Sie den Suchponter von 0 auf das Ende der Datei
Datei_handler.suchen (0, os.Suche_end)
# Lesen Sie die Größe der Datei in Bytes
size = file_handler.erzählen()
# Drucken Sie den Dateiinhalt und die Anzahl der Zeichen der Datei
if (Größe> 0):
# Legen Sie den Ponter auf den Start der Datei ein
Datei_handler.suchen (0)
# Lesen und speichern Sie den Inhalt der Datei in einer Variablen
Datei_Content = Datei_handler.lesen()
print ("\ n der Inhalt der unten angegebenen Datei \ n"))
print (Datei_Content)
Druck ("Die Größe der Datei ist %d Bytes" %Größe)
anders:
# Ausnahme anheben, wenn die Datei leer ist
Ausnahme anheben ('Die Datei hat keinen Inhalt.'))
# Drucken Sie die Fehlermeldung, wenn die Datei nicht vorhanden ist
Außer IoError als Fehler:
Druck (Fehler)
# Drucken Sie die Fehlermeldung, wenn die Datei leer ist
außer Ausnahme als E:
print ('Fehler: %s' %e)
# Drucken Sie die Nachricht, wenn kein Fehler vorliegt
anders:
print ('kein Fehler tritt auf'))

Ausgang:

Das Skript wird dreimal ausgeführt. Das erste Mal wird ein Dateiname angegeben, der nicht existiert, und die Ausgabe zeigt eine IOERROR -Nachricht an. Beim zweiten Mal wird ein Dateiname angegeben, der jedoch keinen Inhalt hat, und die Ausgabe zeigt eine benutzerdefinierte Nachricht an. Das dritte Mal wird ein Dateiname angegeben, der Text existiert und enthält. Die Ausgabe zeigt den Inhalt der Datei an.

Beispiel-3: Verwendung von Try-abgeschlossen-finaler Block, um den Divisionsfehler zu behandeln

Das Beispiel zeigt die Verwendung eines Versuchs-Ausnahme-Final-Blocks, um Divisionsfehler zu behandeln. Zwei numerische Werte werden als Eingabe angenommen und die erste Eingabe durch den zweiten Eingang im Try -Block dividieren. Hier können zwei Arten von Fehlern auftreten. Einer ist ValueError Wenn der Benutzer einen Wert ohne Zahl eingibt und ein anderer ist NulodivisionError Wenn der Benutzer nimmt 0 als zweite Eingabe.

#!/usr/bin/env python3
# Definieren Sie den Try -Block
versuchen:
# Geben Sie zwei Float -Nummern ein
n1 = float (input ('Eingeben Sie eine Nummer \ n'))
n2 = float (input ('Eingeben Sie eine Nummer \ n'))
# Teilen Sie diese Zahlen
Division = N1 / N2
# Fehler umgehen
außer (ZerodivisionError, ValueError):
print ("geteilt durch Nullfehler oder der Wert ist keine Zahl")
# Meldung drucken, wenn kein Fehler auftritt
anders:
Druck ("Das Ergebnis der Abteilung ist %f" %Division)
# Meldung drucken, wenn ein Fehler auftritt oder nicht
Endlich:
print ("das Ende")

Ausgang:

Hier wird das Skript zweimal mit beiden korrekten Eingängen und mit der zweiten Eingabe als 0 ausgeführt. Die zweite Ausnahme wird also generiert und zeigt die Fehlermeldung an.

Abschluss:

Dieses Tutorial zeigt den grundlegenden Ausnahmebehandlungsprozess in Python3 für die neuen Python -Benutzer. Die Leser können verstehen, was Ausnahmebehandlung ist und wie Sie nach dem Üben der obigen Beispiele im Python -Skript angewendet werden können.