Python-Druckausnahme

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:

Screenshot vom 16.12.2023, 36.12.2023

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