Manchmal treten beim Schreiben von Python-Code Fehler auf, die die Ausführung des Programms stoppen. Diese Fehler werden als Ausnahmen bezeichnet und können aus verschiedenen Gründen auftreten, von falschen Eingaben bis hin zu Fehlern in der Programmlogik.
Es ist wichtig zu lernen, wie man eine Exception in Python richtig behandelt und ausgibt, um Informationen über den Fehler zu erhalten und die notwendigen Maßnahmen zu ergreifen, um ihn zu beheben. Dazu können Sie das try-except-Konstrukt verwenden, mit dem Sie eine Ausnahme abfangen und einen bestimmten Code ausführen können, wenn sie auftritt.
Im try-Block setzen wir Code, der eine Ausnahme auslösen kann, und im except-Block geben wir an, wie diese Ausnahme behandelt werden soll. Wir können mehrere except-Blöcke angeben, um verschiedene Ausnahmetypen zu behandeln, oder einen generischen except-Block verwenden, ohne den Ausnahmetyp anzugeben, um alle Ausnahmen zu behandeln.
Fehler in Python können aus verschiedenen Gründen auftreten: falsche Verwendung von Methoden, fehlende Dateien oder Module, falsche Daten und so weiter. Wenn eine Ausnahme auftritt, erstellt Python ein spezielles Objekt, das die Fehlerinformationen enthält.
Beispiel für die Verwendung des try-except-Konstrukts:
try. except SomeException.
Sie können mehrere except-Blöcke verwenden, um verschiedene Ausnahmetypen genauer zu behandeln. In diesem Fall wird jeder except-Block eine bestimmte Ausnahme abfangen und behandeln.
try. except SomeException. except AnotherException.
Wenn eine Ausnahme auftritt, erstellt Python ein Ausnahmeobjekt mit allen erforderlichen Fehlerinformationen. Um auf diese Informationen zuzugreifen, können Sie spezielle Methoden für das Ausschlussobjekt verwenden.
Eine solche Methode ist \_\_str\_\_(), die eine Textdarstellung der Ausnahme zurückgibt. Anwendungsbeispiel:
try. except Exception as e:print(e.__str__())
Wie behandelt und löst man eine Ausnahme in Python aus
Die Ausnahmebehandlung in Python erfolgt mithilfe eines Konstrukts try-except-finally. Dadurch können Sie eine Ausnahme abfangen, einen bestimmten Code ausführen, wenn sie auftritt, und danach mit der Ausführung des Programms fortfahren.
Beispiel für die Verwendung des try-except-Konstrukts:
try:# код, который может вызвать исключениеexcept Exception as e:# код, который будет выполнен, если возникнет исключениеprint(f"Возникла ошибка: ")finally:# код, который всегда будет выполнен вне зависимости от того, возникло исключение или нетprint("Finally блок")
In diesem Beispiel wird ein try-Block verwendet, der Code enthält, der möglicherweise eine Ausnahme auslösen kann. Wenn eine Ausnahme innerhalb eines try-Blocks auftritt, springt die Ausführung des Programms zum entsprechenden except-Block, in dem die Ausnahme behandelt werden kann. In diesem Block können Sie auch die Variable e verwenden, um auf Ausnahmeinformationen zuzugreifen.
Es kann nützlich sein, mehrere except-Blöcke zu verwenden, um verschiedene Ausnahmetypen zu behandeln. Zum Beispiel:
try:# код, который может вызвать исключениеexcept ZeroDivisionError:# код, который обрабатывает исключение ZeroDivisionErrorexcept KeyboardInterrupt:# код, который обрабатывает исключение KeyboardInterruptexcept Exception as e:# код, который обрабатывает любые другие исключенияprint(f"Возникла ошибка: ")
Sie können auch einen finally-Block verwenden, der ausgeführt wird, unabhängig davon, ob eine Ausnahme aufgetreten ist oder nicht. Darin können Sie Code ausführen, der trotzdem ausgeführt werden muss, z. B. eine Datei schließen oder eine Datenbankverbindung herstellen.
import tracebacktry:# код, который может вызвать исключениеexcept Exception as e:# код, который будет выполнен, если возникнет исключениеprint("Возникла ошибка:")traceback.print_exc()
Ruft die Traceback-Funktion auf.mit print_exc() können Sie einen Aufrufstapel-Trace ausgeben, um zu verstehen, wie und warum eine Ausnahme aufgetreten ist.
Korrekte Behandlung von exception in Python
Es wird empfohlen, das try-except-Konstrukt zu verwenden, um eine exception in Python korrekt zu behandeln. Im try-Block wird Code geschrieben, der eine Exception auslösen kann, und im except-Block wird angegeben, was zu tun ist, wenn ein Fehler auftritt.
Wenn wir beispielsweise eine Division durch Null durchführen, wird eine ZeroDivisionError-Ausnahme ausgelöst. Wir können das try-except-Konstrukt verwenden, um diese Ausnahme abzufangen und alternativen Code auszuführen:
try:result = 10 / 0except ZeroDivisionError:result = None
Der try-Block versucht, eine Division durchzuführen, aber wenn ein ZeroDivisionError auftritt, wird die Ausführung des Programms in einen except-Block verschoben, wobei das Ergebnis auf None gesetzt wird.
Sie können auch mehrere except-Blöcke verwenden, um verschiedene Ausnahmetypen zu behandeln:
try:result = int("not a number")except ValueError:result = Noneexcept Exception:result = None
Wenn in diesem Beispiel ein ValueError auftritt, wird der except ValueError-Block ausgeführt und das Ergebnis wird auf None festgelegt. Wenn ein anderer Fehler auftritt, wird der Exception-Block ausgeführt und das Ergebnis wird ebenfalls auf None gesetzt.
Die korrekte Behandlung von exception in Python hilft Programmierern, Fehler zu erkennen und die notwendigen Maßnahmen zu ergreifen, um sie zu beheben.