Python-Druckausnahme
Eine Ausnahme ist ein unerwartetes Ereignis, das während der Ausführung des Programms auftritt. Es wird auch als Laufzeitfehler bezeichnet. Wenn dieser Fehler auftritt, generiert Python während der Ausführung eine Ausnahme, die behandelt werden kann, wodurch verhindert wird, dass Ihr Programm unterbrochen wird. In diesem Artikel konzentrieren wir uns auf „Wie können wir eine Ausnahme in Python drucken?“
Was ist eine Ausnahme in Python?
In Python , Ausnahme ist eine Art Fehler im Programm. Ein Fehler wird als „Ausnahme“ bezeichnet, wenn das Programm syntaktisch korrekt ist, bei der Ausführung jedoch ein Fehler auftritt.
Beispiel : Im Beispiel versuchen wir, eine Zahl durch Null zu dividieren, sodass ein Laufzeitfehler auftritt.
Python3
num1> => 5> num2> => 0> print> (num1> /> num2)> |
Ausgabe
Traceback (most recent call last): File 'Solution.py', line 5, in print(num1 / num2) ZeroDivisionError : division by zero
Dieses Programm ist syntaktisch korrekt . Das einzige Problem liegt hier an den Nummern, die für die Operation verwendet werden. Da wir keine Zahl durch 0 dividieren können, wird ein Fehler ausgegeben. Dies ist also ein Beispiel für eine „Ausnahme“.
Wie sehen Ausnahmen aus?
Als wir das obige Programm ausführten, bekamen wir eine Ausnahme. Der ausgegebene Fehler zeigte die Zeile an, in der der Fehler auftrat, die genaue Zeile und den Fehlertyp.
Der angezeigte Fehlertyp wird als „Ausnahme“ bezeichnet. Durch Ausnahmen erfahren wir von dem aufgetretenen Problem. Die Ausnahme im obigen Programm ist ZeroDivisionError: Division durch Null .
Beispiel : Hier erfolgt die Zuweisung der Variablen var1 durch an undefinierte Variable , var2.
Python3
var1> => var2> |
Ausgabe
Traceback (most recent call last): File 'Solution.py', line 2, in var1 = var2 NameError: name 'var2' is not defined
Oben sehen wir die Ausnahme als NameError: Name „var2“ ist nicht definiert .
Ausnahmebehandlung in Python
Ausnahmen können manchmal sehr störend sein. Hier kommt das Konzept der Ausnahmebehandlung ins Spiel. Durch die Ausnahmebehandlung können wir die Ausnahmen für den Benutzer einfach behandeln, anstatt dem Benutzer nur Fehler zuzuwerfen.
Beispiel : In diesem Programm erfolgt die Eingabe im Typ „int“. Wenn wir jedoch ein Zeichen eingeben, wird ein „ValueError“ ausgegeben. Dies kann den Benutzer oft verwirren. Hier führen wir die Ausnahmebehandlung durch. Anstatt einen Wertfehler auszulösen und den Benutzer zu verwirren, zeigen wir eine Anweisung an, die den Benutzer auffordert, es erneut zu versuchen, und wir geben ihm die Möglichkeit, die Eingabe der Zahlen erneut zu versuchen.
Python3
num1> => int> (> input> (> 'Enter num1: '> ))> num2> => int> (> input> (> 'Enter num2: '> ))> answer> => f> '{num1} / {num2} = {num1 / num2}'> print> (answer)> |
Ausgabe
Enter num1: 1 Enter num2: b Traceback (most recent call last): File 'D:/PycharmProjects/pythonProject2/main.py', line 15, in num2 = int(input('Enter num2: ')) ValueError: invalid literal for int() with base 10: 'b' Mit try, außer und else
In diesem Code wird die while-Schleife ausgeführt, weil wir den Benutzer versuchen lassen wollen, bis die Eingabe korrekt erfolgt. Wir haben die „try“-Klausel verwendet. Die try-Klausel sucht nach Fehlern in den Zeilen in dieser Klausel.
Wenn eine Ausnahme auftritt, springt es zur „Exception“-Klausel und gibt die von uns bereitgestellte Fehlermeldung aus. Wir haben zwei Ausnahmeklauseln geschrieben, eine mit dem ValueError und die andere mit dem ZeroDivisionError. Jede dieser Klauseln behandelt entsprechende Ausnahmen und gibt die entsprechenden Meldungen aus.
Dann haben wir zum Schluss die else-Klausel geschrieben. Wenn kein Fehler auftritt, wird der else-Block ausgeführt. Im else-Block geben wir den Quotienten der Division aus und verlassen die Schleife.
Python3
while> True> :> > try> :> > num1> => int> (> input> (> 'Enter num1: '> ))> > num2> => int> (> input> (> 'Enter num2: '> ))> > answer> => f> '{num1} / {num2} = {num1 / num2}'> > except> ValueError as e:> > print> (> 'Try putting an integer value.
Error Occured:'> , e)> > except> ZeroDivisionError as ex:> > print> (> 'Division by zero is invalid!
Error Occured:'> , ex)> > else> :> > print> (answer)> > break> |
Ausgabe:
Ausnahmen drucken
Nachdem wir nun gesehen haben, was Ausnahmen genau sind, wie sie aussehen und wie man mit ihnen umgeht, werfen wir nun einen Blick auf das Drucken.
Um die Ausnahmen auszudrucken, verwenden wir 'als' Schlüsselwort von Python.
Wir haben das gleiche Beispiel wie zuvor verwendet. Wir haben das Schlüsselwort „as“ verwendet und die Variablen „ve“ für „ValueError“ und „zde“ für „ZeroDivisionError“ deklariert. Wenn wir dann auf Ausnahmen stoßen, haben wir den Code geschrieben, um diese Ausnahme auszugeben. Dennoch können wir den Typ der Ausnahme, die wir erhalten haben, nicht sehen.
Python3
while> True> :> > try> :> > num1> => int> (> input> (> 'Enter num1: '> ))> > num2> => int> (> input> (> 'Enter num2: '> ))> > answer> => f> '{num1} / {num2} = {num1 / num2}'> > except> ValueError as ve:> > print> (ve)> > except> ZeroDivisionError as zde:> > print> (zde)> > else> :> > print> (answer)> > break> |
Ausgabe:
Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 0 Enter num2: 0 division by zero Enter num1: 16 Enter num2: 4 16 / 4 = 4.0
Druckausnahmetyp
Um den Ausnahmetyp anzuzeigen, können wir die Funktion type() verwenden.
Hier haben wir die Funktion type() verwendet, um die Art der Ausnahme zu ermitteln, auf die wir beim Ausführen des Codes gestoßen sind.
Python3
while> True> :> > try> :> > num1> => int> (> input> (> 'Enter num1: '> ))> > num2> => int> (> input> (> 'Enter num2: '> ))> > answer> => f> '{num1} / {num2} = {num1 / num2}'> > except> ValueError as ve:> > print> (> type> (ve), ve)> > except> ZeroDivisionError as zde:> > print> (> type> (zde), zde)> > else> :> > print> (answer)> > break> |
Ausgabe
Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 1 Enter num2: 0 division by zero Enter num1: 4 Enter num2: 2 4 / 2 = 2.0