Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der fünf Mechanismen zur Ausnahmebehandlung in Python

Detaillierte Erläuterung der fünf Mechanismen zur Ausnahmebehandlung in Python

高洛峰
高洛峰Original
2017-03-17 15:55:521720Durchsuche

Ich habe vor ein paar Jahren angefangen, Programmieren zu lernen. Bis jetzt hatte ich immer Angst und Abscheu vor der Ausnahmebehandlung. Der Grund dafür liegt im mangelnden Verständnis. Wenn ich dieses Mal Python angreife, liste ich zunächst die wenigen Dinge auf, vor denen ich am meisten Angst habe und mit denen ich am wenigsten vertraut bin, einschließlich „Ausnahmebehandlung“.

„pe into Python“ führt die Ausnahmebehandlung nicht speziell ein, sondern erklärt sie nur kurz, wenn sie in Beispielen verwendet wird. Laden Sie „Learn Python“ noch heute herunter und gehen Sie direkt zur Ausnahmebehandlung. Dieser Teil besteht aus vier Kapiteln. Das erste Kapitel erläutert die allgemeine Verwendung der Ausnahmebehandlung, und in den folgenden Kapiteln wird der Mechanismus ausführlich erläutert. Ich habe bisher nur das erste Kapitel gelesen. Ich möchte zuerst lernen, wie man es benutzt, und dann bei Bedarf mehr lesen.

Python unterstützt hauptsächlich fünf Ausnahmemechanismen, die nacheinander aufgelistet sind.

Der Standard-Ausnahmebehandler

Code lautet wie folgt:

s = 'Hello girl!'
print s[100]
print 'continue'

Wenn wir keine Vorsichtsmaßnahmen für Ausnahmen treffen, tritt eine Ausnahme während der Programmausführung auf Unterbricht das Programm, ruft den Standard-Ausnahmebehandler von Python auf und gibt Ausnahmeinformationen im Terminal aus. In diesem Fall wird Zeile 3 des Codes nicht ausgeführt.

versuchen…außer

Der Code lautet wie folgt:

s = 'Hello girl!'
try:
 print s[100]
except IndexError:
 print 'error...'
print 'continue'

Wenn das Programm bis zum zweiten Satz ausgeführt wird, findet es die try-Anweisung und tritt in den try-Anweisungsblock ein zur Ausführung, und es tritt eine Ausnahme auf und Sie kehren zu try zurück. Überprüfen Sie auf Anweisungsebene, ob sich dahinter eine Ausnahmeanweisung befindet. Nachdem die Ausnahmeanweisung gefunden wurde, wird dieser benutzerdefinierte Ausnahmehandler aufgerufen. Nachdem die Ausnahme behandelt wurde, setzt das Programm die Ausführung fort. In diesem Fall werden die letzten beiden Druckanweisungen ausgeführt.

exclusive kann auch leer sein, was darauf hinweist, dass jede Art von Ausnahme abgefangen wird.

try...finally

Der Code lautet wie folgt:

s = 'Hello girl!'
try:
 print s[100]
finally:
 print 'error...'
print 'continue'

Die „final“-Anweisung bedeutet, dass die Anweisungen in „finally“ unabhängig davon ausgeführt werden müssen, ob eine Ausnahme auftritt oder nicht. Da es jedoch keinen Ausnahmehandler gibt, wird das Programm nach der endgültigen Ausführung unterbrochen. In diesem Fall wird der zweite Druck ausgeführt, der erste Druck jedoch nicht. Wenn es in der try-Anweisung keine Ausnahme gibt, werden alle drei Ausdrucke ausgeführt.

assert

Der Code lautet wie folgt:

assert False,'error...'
print 'continue'

Diese Anweisung bestimmt zunächst, ob die Aussage unmittelbar nach der Behauptung wahr oder falsch ist. Wenn sie wahr ist, fahren Sie fort Wenn es „Falsch“ ist, wird das Programm unterbrochen, der Standard-Ausnahmebehandler aufgerufen und die Eingabeaufforderungsinformationen nach dem Komma in der Assertion-Anweisung ausgegeben. In diesem Fall wird das Programm unterbrochen, ein Fehler angezeigt und nachfolgende Ausdrucke werden nicht ausgeführt.

mit…as

Der Code lautet wie folgt:

with open('nothing.txt','r') as f:
 f.read()
 print 2/0
print 'continue'

Wenn wir normalerweise dateiähnliche Stream--Objekte verwenden, müssen wir aufrufen Nach der Verwendung wird die Methode geschlossen, was sehr problematisch ist. Die with...as-Anweisung stellt hier eine sehr praktische Alternative dar: Nachdem open die Datei geöffnet hat, weisen Sie das zurückgegebene Datei-Stream-Objekt f zu und verwenden es dann im with-Anweisungsblock. Nachdem der with-Anweisungsblock abgeschlossen ist, wird die Datei automatisch und versteckt geschlossen.

Wenn in der with-Anweisung oder im Anweisungsblock eine Ausnahme auftritt, wird der Standard-Ausnahmehandler aufgerufen, die Datei wird jedoch weiterhin normal geschlossen.

In diesem Fall wird eine Ausnahme ausgelöst und der endgültige Druck wird nicht ausgeführt.


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der fünf Mechanismen zur Ausnahmebehandlung in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn