Hinweise zum Umgang mit Nested Ausnahmen in Python

Manchmal müssen Sie innerhalb eines anderen in einem Prozess einer Ausnahme-Behandlungsroutine zu platzieren genannt Verschachtelung.

Wenn Sie Nest Routinen Ausnahmebehandlung, versucht Python eine Exception-Handler in der verschachtelten Ebene zu finden, sich zuerst bewegt und dann in den äußeren Schichten. Sie können Nest Ausnahmebehandlungsroutinen so tief wie nötig, um Ihren Code sicher zu machen.

Einer der häufigsten Gründe, um eine Dual-Layer-Ausnahmebehandlungscode zu verwenden ist, wenn Sie Eingabe von einem Benutzer zu erhalten, wollen und müssen die Eingabe-Code in einer Schleife zu setzen, um sicherzustellen, dass Sie tatsächlich die erforderlichen Informationen zu erhalten. Die folgenden Schritte zeigen, wie diese Art von Code funktionieren könnte.

1

Öffnen Sie ein Python-Datei-Fenster.

Sie sehen einen Editor, in dem Sie den Beispielcode eingeben können.

2

Geben Sie den Code in das Fenster - drücken Sie nach jeder Zeile eingeben:

TryAgain = Truewhile TryAgain: try: Wert = int (Eingang ( "eine ganze Zahl Typ.")), Mit Ausnahme Valueerror: ( "Sie müssen sich eine ganze Zahl eingeben") print versuchen: DoOver = Eingang ( "Versuchen Sie es erneut (y / n )? "), außer: print (" OK, bis zum nächsten Mal ") TryAgain = Falseelse: if (str.upper (DoOver) =="! N "): TryAgain = Falseexcept KeyboardInterrupt: print (" Sie haben die Taste Strg + C ! ") print (" zum nächsten Mal ") TryAgain = Falseelse: print (Value) TryAgain = false

Der Code beginnt mit einer Eingangsschleife zu schaffen. Schleifen für diese Art von Zweck zu verwenden ist eigentlich recht häufig in Anwendungen, weil Sie jedes Mal ein Eingabefehler zu beenden wird die Anwendung nicht wollen. Dies ist eine vereinfachte Schleife, und in der Regel erstellen Sie eine separate Funktion, um den Code zu halten.

Wenn die Schleife beginnt, fragt die Anwendung den Benutzer eine ganze Zahl einzugeben. Es kann eine beliebige Zahl ein. Wenn der Benutzer alle nicht-ganzzahligen Wert oder drückt Strg + C, Cmd + C oder eine andere Tastenkombination unterbrechen, nimmt die Ausnahmebehandlung Code über. Andernfalls druckt der Anwendung den Wert, den der Benutzer geliefert und Sets Versuch es noch einmal nach Falsch, was bewirkt, daß die Schleife zu beenden.

EIN Valueerror Ausnahme kann auftreten, wenn der Benutzer einen Fehler macht. Denn Sie wissen nicht, warum die Benutzereingabe der falsche Wert, muss man fragen, ob der Benutzer noch einmal versuchen will. Natürlich könnten weitere Eingabe von dem Benutzer immer weitere Ausnahme zu erzeugen. Das Innere Versuchen # 133- außer Codeblock übernimmt diese sekundären Eingang.

Beachten Sie die Verwendung der str.upper () funktionieren, wenn die Zeicheneingabe von dem Benutzer erhalten. Diese Funktion ermöglicht es, zu empfangen y oder Y als Eingabe und akzeptieren sie beide. Jedes Mal, wenn Sie den Benutzer zur Eingabe von Zeichen fragen, ist es eine gute Idee, Kleinbuchstaben in Großbuchstaben zu konvertieren, so dass Sie einen einzigen Vergleich durchführen können (das Potenzial für Fehler zu reduzieren).

Das KeyboardInterrupt Ausnahme zeigt zwei Nachrichten an und beendet dann automatisch durch Einstellen Versuch es noch einmal nach Falsch. Das KeyboardInterrupt tritt nur auf, wenn der Benutzer eine bestimmte Tastenkombination drückt entwickelt, um die Anwendung zu beenden. Der Benutzer ist unwahrscheinlich, wollen an dieser Stelle mit der Anwendung fortzusetzen.

3

Wählen Sie Start-Run Module.

Sie sehen eine Python-Shell-Fenster geöffnet. Die Anwendung fordert den Benutzer zur Eingabe einer ganzen Zahl.

4

Geben Sie Hallo und drücken Sie die Eingabetaste.

Die Anwendung zeigt eine Fehlermeldung an und fragt, ob Sie es erneut versuchen möchten.

5

Geben Sie Y ein und drücken Sie die Eingabetaste.

Die Anwendung fordert Sie zur Eingabe wieder eine ganze Zahl.

6

Geben Sie 5.5 ein und drücken Sie die Eingabetaste.

Die Anwendung zeigt wieder die Fehlermeldung und fragt, ob Sie noch einmal versuchen möchten.

7

Drücken Sie Strg + C, Cmd + C oder eine andere Tastenkombination, die Anwendung zu unterbrechen.

Die Anwendung endet. Beachten Sie, dass die Nachricht die eine von der inneren Ausnahme. Die Anwendung wird nie auf die äußere Ausnahme, weil die innere Exception-Handler allgemeine Ausnahmebehandlung zur Verfügung stellt.

8

Wählen Sie Start-Run Module.

Sie sehen eine Python-Shell-Fenster geöffnet. Die Anwendung fordert den Benutzer zur Eingabe einer ganzen Zahl.

9

Drücken Sie Strg + C, Cmd + C oder eine andere Tastenkombination, die Anwendung zu unterbrechen.

Die Anwendung endet. Beachten Sie, dass die Nachricht die eine von der äußeren Ausnahme. In den preious Schritten beendet der Benutzer die Anwendung durch einen Interrupt-Taste drücken. Allerdings verwendet die Anwendung zwei verschiedene Exception-Handler, das Problem zu lösen.

Menü