Python

Ausnahmebehandlung in Python

Ausnahmebehandlung in Python
Wenn wir 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 von den Benutzern möglicherweise nicht erkannt und schaffen für sie eine unerwünschte Situation. Aber wenn der Fehler für die Benutzer in einem verständlichen Format angezeigt werden kann, ist es für sie einfach, den Grund für den Fehler zu erkennen. In jeder objektorientierten Programmierung, versuchen-fangen oder try-catch-finally Block wird verwendet, um Fehler zu behandeln und sie in einem lesbaren Format anzuzeigen, das als Ausnahmebehandlung bezeichnet wird. In diesem Tutorial wird gezeigt, wie die Ausnahmebehandlung in Python-Skripten durchgeführt werden kann.

Syntax :

Versuchen:
Block…
außer Ausnahme:
Handler…
sonst:
Block…
schließlich:
Block…

Hier, falls ein Fehler beim Ausführen der Anweisungen von auftritt Versuchen block, dann wird eine Ausnahme generiert und der Fehler an die entsprechende außer handler. Mehrere Fehler können in einem einzigen generiert werden Versuchen blocken und dann musst du mehrere schreiben außer Handler.  Die Aussagen der sonst Block wird ausgeführt, wenn kein Fehler in der Versuchen Block. Die Aussagen der schließlich Block wird ausgeführt, wenn ein Fehler auftritt oder nicht auftritt. Zur Ausnahmebehandlung mit sonst und schließlich Blöcke sind nicht unbedingt erforderlich. Verschiedene Arten der Ausnahmebehandlung in Python werden im nächsten Teil des Tutorials erklärt.

Beispiel-1: Verwendung eines einzelnen try-außer Blocks zur Validierung numerischer Daten:

Dieses Beispiel zeigt die sehr einfache Verwendung der Ausnahmebehandlung in Python. In dem Versuchen Block, werden zwei Eingaben vom Benutzer genommen, eine ist ein String-Wert und eine andere ist ein numerischer Wert.  Wenn der Benutzer einen beliebigen Zeichenfolgenwert anstelle eines numerischen Werts für die zweite Eingabe eingibt, wird der ValueError Ausnahme wird generiert von python3 und eine benutzerdefinierte Fehlermeldung wird angezeigt von außer Block.

#!/usr/bin/env python3
# Definiere den Try-Block
Versuchen:
# Nimm alle Daten als String
name = input("Geben Sie Ihren Namen ein: \n")
# Nehmen Sie beliebige numerische Daten
alter = int(input("Geben Sie Ihr Alter ein: \n"))
# Drucken Sie die formatierten Daten mit Namen und Alter aus
print("Hallo %s, du bist %s Jahre alt." %(name Alter))
# Eingabefehler behandeln
außer (ValueError):
# Benutzerdefinierte Fehlermeldung drucken
print("Falsche Eingabe! Sie müssen eine Zahl als Ihr Alter eingeben.")

Ausgabe:

Das Skript wird in der folgenden Ausgabe zweimal mit falscher Eingabe und korrekter Eingabe ausgeführt. Das erste Mal, wenn der Benutzer 'Einunddreißig' als Alterswert für die zweite Eingabe, die einen numerischen Wert annimmt, dann a ValueError wird generiert und die Fehlermeldung wird aus dem Ausnahmeblock angezeigt. Beim zweiten Mal wird kein Fehler für korrekte Eingabewerte generiert generated.

Beispiel-2: Verwendung eines multiplen Blocks, um mehrere Fehler zu behandeln:

In diesem Beispiel wird gezeigt, wie Sie mehrere Ausnahmeblöcke verwenden können, um mehrere Fehler zu behandeln.  In diesem Skript werden zwei Arten von Fehlern behandelt. Ein Dateiname wird als Eingabe vom Benutzer zum Lesen verwendet. Wenn die Datei nicht existiert, wird sie generiert ein IO-Fehler Ausnahme und wenn die Datei existiert, aber leer ist, wird eine benutzerdefinierte Ausnahme ausgelöst. Dafür werden in diesem Skript zwei Ausnahmeblöcke verwendet. Wenn keiner der Fehler auftritt, wird der Inhalt der Datei angezeigt.

#!/usr/bin/env python3
# OS-Modul importieren
Importieren von OS
# Definiere den Try-Block
Versuchen:
# Nimm den Dateinamen als Eingabe
filename = input('Geben Sie einen Dateinamen ein\n')
# Datei zum Lesen öffnen
file_handler = open(Dateiname)
# Setzt den Suchponter von 0 auf das Ende der Datei
file_handler.suchen(0, os.SEEK_END)
# Lesen Sie die Größe der Datei in Bytes
Größe = file_handler.sagen()
# Drucken Sie den Dateiinhalt und die Anzahl der Zeichen der Datei
wenn (Größe > 0):
# Den Ponter auf den Anfang der Datei setzen
file_handler.suchen(0)
# Lesen und speichern Sie den Inhalt der Datei in einer Variablen
file_content = file_handler.lesen()
print("\nDer Inhalt der unten angegebenen Datei\n")
print(file_content)
print("Die Dateigröße beträgt %d Bytes"  %size)
sonst:
# Ausnahme auslösen, wenn die Datei leer ist
raise Exception('Die Datei hat keinen Inhalt.')
# Drucken Sie die Fehlermeldung, wenn die Datei nicht existiert
außer IOError als Fehler:
drucken (Fehler)
# Drucken Sie die Fehlermeldung, wenn die Datei leer ist
außer Ausnahme wie e:
print('Fehler:%s' %e)
# Drucken Sie die Nachricht, wenn kein Fehler vorliegt
sonst:
print('Kein Fehler aufgetreten')

Ausgabe:

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

Beispiel-3: Verwendung des try-außer-finally-Blocks zur Behandlung von Divisionsfehlern

Das Beispiel zeigt die Verwendung eines try-außer-finally-Blocks zur Behandlung von Divisionsfehlern. Zwei numerische Werte werden als Eingabe verwendet und dividieren die erste Eingabe durch die zweite Eingabe im try-Block. Hier können zwei Arten von Fehlern auftreten. Einer ist ValueError wenn der Benutzer einen beliebigen Wert ohne Zahl eingibt und ein anderer ist ZeroDivisionError wann nimmt der Benutzer 0 als zweiter Eingang.

#!/usr/bin/env python3
# Definiere den Try-Block
Versuchen:
# Geben Sie zwei Gleitkommazahlen ein
n1 = float(input('Geben Sie eine Zahl ein\n'))
n2 = float(input('Geben Sie eine Zahl ein\n'))
# Teile diese Zahlen
Teilung = n1 / n2
# Fehler behandeln
außer (ZeroDivisionError, ValueError):
print("Divided by zero error or Der Wert ist keine Zahl")
# Nachricht drucken, wenn kein Fehler auftritt
sonst:
print("Das Ergebnis der Division ist %f" %division )
# Nachricht drucken, wenn ein Fehler auftritt oder nicht auftritt
schließlich:
print("Das Ende")

Ausgabe:

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

Fazit:

Dieses Tutorial zeigt den grundlegenden Ausnahmebehandlungsprozess in Python3 für die neuen Python-Benutzer. Die Leser werden in der Lage sein zu verstehen, was Ausnahmebehandlung ist und wie man sie in Python-Skripten anwendet, nachdem sie die obigen Beispiele geübt haben.

So ändern Sie die Maus- und Touchpad-Einstellungen mit Xinput in Linux
Die meisten Linux-Distributionen werden standardmäßig mit der Bibliothek „libinput“ ausgeliefert, um Eingabeereignisse auf einem System zu verarbeiten...
Weisen Sie Ihre Maustasten mit der X-Mouse Button Control für verschiedene Software unterschiedlich zu
Vielleicht benötigen Sie ein Tool, mit dem sich die Steuerung Ihrer Maus bei jeder von Ihnen verwendeten Anwendung ändern kann. In diesem Fall können ...
Microsoft Sculpt Touch Wireless-Maus Bewertung
Ich habe vor kurzem gelesen, dass Microsoft Sculpt Touch kabellose Maus und beschloss, sie zu kaufen. Nachdem ich es eine Weile benutzt hatte, beschlo...