Zum Hauptinhalt springen

Mac OS-Tastatur in Vmware: Funktionen und Einstellungen

Bei der Entwicklung von Python-Programmen stoßen wir manchmal auf Fehler, die die Ausführung eines Programms stoppen können. Ausnahmen werden in Python verwendet, um solche Situationen zu behandeln.

Eine Ausnahme ist ein Objekt, das "ausgelöst" wird, wenn ein Fehler auftritt. In Python helfen uns Ausnahmen zu verstehen, was während der Ausführung des Programms schief gelaufen ist und geben Informationen über den Fehler an.

Python bietet viele integrierte Ausnahmen, mit denen verschiedene Arten von Fehlern behandelt werden können. Wenn eine Ausnahme auftritt, kann der Programmcode in einen speziellen Block (der als Ausnahmehandler bezeichnet wird) übergehen und dort die erforderlichen Aktionen ausführen.

Außerdem ist es wichtig, bei der Ausnahmebehandlung die genaue Abfolge von Funktionsaufrufen verfolgen zu können, bevor ein Fehler auftritt. Dazu wird die Ablaufverfolgung verwendet – der Prozess zur Ausgabe des Aufrufstapels - eine Liste der Funktionen, die während der Ausführung des Programms aufgerufen wurden.

In diesem Artikel erfahren Sie, wie Sie Fehler und Aufrufstapel in Python ausgeben und wie Sie diese Informationen verwenden können, um Programme effizienter zu debuggen und zu entwickeln.

Fehlerausgabe und Aufrufstapel in Python

Es ist nicht ungewöhnlich, dass bei der Entwicklung von Python-Programmen Fehler auftreten. Wenn ein Fehler im Code auftritt, löst Python eine Ausnahme aus, die Informationen über den aufgetretenen Fehler und eine Aufrufstapel-Ablaufverfolgung enthält.

Die Fehlerinformationen können beim Debuggen eines Programms sehr nützlich sein. Damit können Sie bestimmen, wo der Fehler aufgetreten ist und welche Funktionsaufrufe ihn ausgelöst haben.

Python gibt die Fehlerinformationen an den Standardausgabestream aus. Standardmäßig ist dies die Konsole, aber die Informationen können auch in eine Datei oder eine andere Ausgabe umgeleitet werden.

Die Fehlerinformationen bestehen normalerweise aus zwei Teilen: der Fehlermeldung und der Aufrufstapel-Ablaufverfolgung.

Die Fehlermeldung ist Teil einer Ausnahme und enthält normalerweise eine Beschreibung des Fehlers und zusätzliche Informationen, die Ihnen helfen können, die Ursachen des Fehlers zu verstehen.

Die Aufrufstapel-Ablaufverfolgung ist eine Abfolge von Funktionsaufrufen, beginnend an der Stelle, an der ein Fehler aufgetreten ist und an der die Ausnahme behandelt wurde oder das Programm beendet wurde.

Die Ausnahme, die im Programm aufgetreten ist, wird als Quelle für die Ausgabe von Fehlern verwendet. In Python kann eine Ausnahme mit einer Raise-Anweisung ausgelöst werden, oder sie kann automatisch ausgelöst werden, wenn ein Programmausführungsfehler auftritt.

Fehler können in Python unterschiedlich sein, und jeder Typ kann Fehlerinformationen auf unterschiedliche Weise ausgeben. Eine TypeError-Ausnahme enthält beispielsweise Informationen darüber, welche Argumenttypen an die Funktion übergeben wurden, und eine IndexError-Ausnahme enthält Informationen darüber, welcher Index falsch war.

Standardmäßig gibt Python nur eine Fehlermeldung aus, aber Sie können die Traceback-Funktion verwenden, um vollständige Informationen über den aufgetretenen Fehler zu erhalten.print_exc() des Traceback-Moduls . Es gibt eine Fehlermeldung und einen vollständigen Aufrufstapel aus.

Es gibt auch andere Möglichkeiten, Fehler zu behandeln und auszugeben, beispielsweise können Sie die try/except-Anweisung zum Abfangen und Behandeln von Ausnahmen verwenden. Auf diese Weise können Sie das Verhalten des Programms steuern, wenn ein Fehler auftritt, und eine Ausnahme und eine Ablaufverfolgung des Aufrufstapels nach Belieben ausgeben.

Die Ausgabe von Fehlern und Aufrufstapel in Python ist ein wichtiges Werkzeug beim Debuggen von Programmen. Es hilft Ihnen, den Ort und die Ursache des Fehlers schnell zu ermitteln, wodurch die Fehlerbehebung vereinfacht und die Codequalität verbessert wird.

Ausnahmen: Grundlegende Konzepte

Die Ausnahme enthält Informationen über den Fehler, z. B. den Typ des Fehlers und die Textnachricht. Fehler können bei verschiedenen Vorgängen auftreten, z. B. durch Null dividieren, auf eine nicht vorhandene Datei zugreifen oder falsche Daten abrufen.

Es gibt viele integrierte Ausnahmen in Python, von denen jede mit einem bestimmten Fehlertyp übereinstimmt. Beispielsweise wird eine ZeroDivisionError-Ausnahme ausgelöst, wenn sie durch Null dividiert wird, eine ValueError-Ausnahme, wenn Sie versuchen, falsche Daten in einen anderen Typ zu konvertieren.

Um eine Ausnahme in einem Programm zu behandeln, müssen Sie das try-except-Konstrukt verwenden. Ein try-Block enthält Code, in dem eine Ausnahme ausgelöst werden kann. Der except-Block definiert, wie eine Ausnahme behandelt wird, wenn sie aufgetreten ist.

Sie können mehrere Abschnitte im except-Block angeben, um verschiedene Ausnahmetypen zu behandeln. Sie können auch ein finally-Konstrukt verwenden, das Code ausführt, unabhängig davon, ob eine Ausnahme aufgetreten ist oder nicht.

Wenn eine Ausnahme auftritt, wechselt das Programm zum nächsten Ausnahmehandler. Wenn kein Handler gefunden wird, beendet das Programm die Ausführung und gibt Fehlerinformationen aus.

Sie können Ausnahmeinformationen und einen Aufrufstapel mit einem try-except-Konstrukt mit einem except-Block ausgeben, ohne den Ausnahmetyp anzugeben. In diesem Fall werden die Fehlerinformationen und der Aufrufstapel angezeigt.

Mithilfe von Ausnahmen können Sie zuverlässigere und fehlertolerante Programme erstellen, auftretende Fehler behandeln und den Benutzer davor warnen.

Ausnahmetypen in Python

Es gibt viele Arten von Ausnahmen in Python, die während der Ausführung eines Programms auftreten können. Wenn Sie diese Typen kennen, können Sie verstehen, welche Fehler auftreten und wie Sie damit umgehen können.

  • Exception ist die Basisklasse für alle Ausnahmen in Python. Alle Ausnahmen sind seine Nachkommen.
  • SyntaxError - tritt auf, wenn ein Syntaxfehler im Code auftritt.
  • TypeError - Tritt auf, wenn eine Operation auf ein Objekt des falschen Typs angewendet wird.
  • ValueError - tritt auf, wenn eine Funktion ein Argument vom richtigen Typ erhält, jedoch mit dem falschen Wert.
  • IndexError - Tritt auf, wenn sich der Index eines Arrays außerhalb des zulässigen Bereichs befindet.
  • KeyError - Tritt auf, wenn kein Schlüssel im Wörterbuch angegeben ist.
  • FileNotFoundError - tritt auf, wenn die Datei nicht gefunden wird.
  • ZeroDivisionError - tritt auf, wenn eine Division durch Null auftritt.
  • ImportError - Tritt auf, wenn ein Modul oder Paket nicht importiert werden konnte.
  • AttributeError - Tritt auf, wenn ein Objekt kein bestimmtes Attribut aufweist.

Sie können auch eigene Ausnahmen erstellen, indem Sie von der Exception-Klasse erben.

Wenn eine Ausnahme in Python auftritt, können Sie einen try-except-Block verwenden, um ihn zu behandeln. Ein try-Block enthält Code, der eine Ausnahme auslösen kann, und ein except-Block definiert, wie diese Ausnahme behandelt wird. Der except-Block gibt den zu behandelnden Ausnahmetyp an.

Wenn Sie beispielsweise eine FileNotFoundError-Ausnahme behandeln möchten, können Sie Code wie diesen schreiben:

try:file = open("myfile.txt", "r")except FileNotFoundError:print("Файл не найден")

Dieser Code versucht, eine Datei mit dem Namen "myfile" zu öffnen.txt". Wenn die Datei nicht gefunden wird, wird die Meldung "Datei wurde nicht gefunden" angezeigt.

Behandeln von Ausnahmen

In Python können Ausnahmen mit einem Konstrukt behandelt werden try-except. Auf diese Weise können Sie Fehler behandeln, die während der Programmausführung auftreten, und dem Benutzer Informationen über den aufgetretenen Fehler geben.

Konstruktion try-except besteht aus zwei Blöcken. Block try enthält Code, der eine Ausnahme auslösen kann. Block except enthält den Code, der ausgeführt wird, wenn eine Ausnahme ausgelöst wird.

try:# Код, который может вызвать исключениеresult = 10 / 0except ZeroDivisionError:# Код, который будет выполнен при возникновении исключения ZeroDivisionErrorprint("Деление на ноль недопустимо!")

In diesem Beispiel versuchen wir, eine Division durch Null durchzuführen. Wenn dies auftritt, wird eine Ausnahme ausgelöst ZeroDivisionError und Block except fängt es ab und gibt dem Benutzer eine Meldung aus, dass die Division durch Null ungültig ist.

Sie können mehrere Blöcke angeben except um verschiedene Ausnahmen zu behandeln:

try:# Код, который может вызвать исключениеresult = int("abc")except ZeroDivisionError:# Код, который будет выполнен при возникновении исключения ZeroDivisionErrorprint("Деление на ноль недопустимо!")except ValueError:# Код, который будет выполнен при возникновении исключения ValueErrorprint("Неверный формат числа!")

In diesem Beispiel haben wir versucht, eine Zeichenfolge mithilfe einer Funktion in eine Zahl zu konvertieren int(). Wenn die Zeichenfolge ein falsches Format aufweist (z. B. Buchstaben anstelle von Zahlen enthält), wird eine Ausnahme ausgelöst ValueError, und die Einheit except fängt es ab und gibt dem Benutzer eine Meldung über das falsche Zahlenformat aus.

Wenn im Block try es wird eine Ausnahme ausgelöst, die nicht im Block angegeben wurde except wird die Ausnahme nicht behandelt und standardmäßig wird eine Fehlermeldung ausgegeben.

Sie können auch einen Block hinzufügen finally, die trotzdem ausgeführt wird, auch wenn Ausnahmen auftreten oder nicht auftreten:

try:# Код, который может вызвать исключениеresult = int("abc")except ValueError:# Код, который будет выполнен при возникновении исключения ValueErrorprint("Неверный формат числа!")finally:# Код, который будет выполняться в любом случаеprint("Конец программы")

In diesem Beispiel tritt eine Ausnahme auf ValueError es wird eine entsprechende Meldung angezeigt und der Block wird dann ausgeführt finally zeigt eine Meldung an, dass das Programm beendet wurde.

try-except-Anweisungen

In der Programmiersprache Python werden try-except-Anweisungen verwendet, um Ausnahmen zu behandeln, die während der Programmausführung auftreten. Ein try-Block enthält Code, der eine Ausnahme auslösen kann, und ein except-Block definiert genau, wie diese Ausnahme behandelt wird.

Die try-except-Anweisung hat die folgende Syntax:

try:# Код, который может вызвать исключениеexcept Имя_исключения1:# Код для обработки Имя_исключения1except Имя_исключения2 as переменная:# Код для обработки Имя_исключения2 и доступ к переменной

Wenn ein try-Block eine Ausnahme auslöst, geht der Code in einen except-Block über, der dieser Ausnahme entspricht. Wenn die im try-Block ausgelöste Ausnahme mit der im except-Block angegebenen Ausnahme übereinstimmt, wird der Code in diesem Block ausgeführt. Wenn die Ausnahme nicht mit einer der Ausnahmen in den except-Blöcken übereinstimmt, wird die Ausnahme beim Aufruf des Stapels weitergegeben.

Sie können mehrere Ausnahmen im except-Block angeben, indem Sie sie durch Kommas trennen. Sie können auch finally- und else-Anweisungen verwenden, um bestimmte Aktionen nach einem try-Block oder nach einem except-Block auszuführen.

Beispiel für die Verwendung von try-except-Anweisungen:

try:x = 10 / 0except ZeroDivisionError:print("Ошибка деления на ноль")except Exception as e:print("Произошла ошибка:", e)

In diesem Beispiel löst der Code im try-Block eine ZeroDivisionError-Ausnahme aus, da eine Division durch Null erfolgt. Der except-Block mit dem Namen ZeroDivisionError behandelt diese Ausnahme und gibt die Meldung "Fehler bei der Division durch Null" aus. Wenn eine andere Ausnahme aufgetreten wäre, würde sie von einem except-Block namens Exception behandelt.