Hinweise zum Umgang mit spezifischer zu weniger spezifische Ausnahmen in Python

Eine Strategie für den Umgang mit Ausnahmen in Python ist spezifisch zur Verfügung zu stellen außer Klauseln für alle bekannten Ausnahmen und Generika außer Klauseln unbekannten Ausnahmen zu behandeln. Schauen Sie sich die Ausnahme Hierarchie, die Python verwendet. Bei der Betrachtung dieser Tabelle, BaseException die oberste Ausnahme. Die meisten Ausnahmen werden abgeleitet von Ausnahme. Wenn durch mathematische Fehler arbeiten, können Sie die generische verwenden ArithmeticError oder eine spezifischere Zerodivisionerror Ausnahme.

Python auswertet außer Klauseln in der Reihenfolge, in der sie in der Quellcodedatei angezeigt. Die erste Klausel wird zunächst geprüft, die zweite Klausel zweite untersucht wird, und so weiter. Die folgenden Schritte helfen Ihnen ein Beispiel untersuchen, die die Bedeutung der Verwendung der richtigen Ausnahme Auftrag zeigt. In diesem Fall führen Sie Aufgaben, die in der Mathematik zu Fehlern führen.

  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:

    versuchen: Wert1 = int (Eingang ( "die erste Nummer Typ:")) Wert2 = int (Eingang ( "die zweite Zahl Typ:")) Ausgang = Wert1 / Value2except Valueerror: print ( "Sie müssen eine ganze Zahl eingeben!" ) außer KeyboardInterrupt: print ( "Sie haben die Taste Strg + C"), außer ArithmeticError: print ( "Ein undefinierter math Fehler aufgetreten ist."), mit Ausnahme Zerodivisionerror: print ( "Versuchte Division durch Null!") else: print (Output)

    Der Code beginnt mit zwei Eingängen zu erhalten: value1 und Wert2. Die ersten zwei außer Klauseln behandeln unerwarteten Eingang. Die zweite zwei außer Klauseln behandeln math Ausnahmen, wie durch Null geteilt wird. Wenn alles gut geht mit der Anwendung, die sonst Klausel ausführt, die das Ergebnis der Operation ausgibt.

  3. Wählen Sie Start-Run Module.


    Sie sehen eine Python-Shell-Fenster geöffnet. Die Anwendung fragt Sie die erste Nummer eingeben.

  4. Geben Sie Hallo und drücken Sie die Eingabetaste.

    Wie erwartet, zeigt Python die Valueerror Ausnahmemeldung. Aber es lohnt sich immer für mögliche Probleme zu überprüfen.

  5. Wählen Sie Start-Run Module wieder.

    Sie sehen eine Python-Shell-Fenster geöffnet. Die Anwendung fragt Sie die erste Nummer eingeben.

  6. Typ 8 und drücken Sie die Eingabetaste.

    Die Anwendung fragt Sie die zweite Nummer einzugeben.

  7. Geben Sie 0 ein und drücken Sie die Eingabetaste.

    Sie sehen die Fehlermeldung für die ArithmeticError Ausnahme. Was sollten Sie wirklich sehen, ist die Zerodivisionerror Ausnahme, weil es ist spezifischer als die ArithmeticError Ausnahme.

    bild0.jpg
  8. Kehren Sie die Reihenfolge der beiden Ausnahmen, so dass sie wie folgt aussehen:

    außer Zerodivisionerror: print ( "Versuchte Division durch Null!") außer ArithmeticError: print ( "Ein undefinierter Mathe-Fehler aufgetreten.")
  9. Führen Sie die Schritte 5 bis 7 wieder.

    Dieses Mal sehen Sie die Zerodivisionerror Ausnahmemeldung, da die Ausnahmen erscheinen in der richtigen Reihenfolge.

  10. Führen Sie die Schritte 5 bis 7 wieder, aber Typ 2 für die zweite Zahl anstelle von 0.

    Dieses Mal berichtet die Anwendung schließlich einen Ausgangswert von 4,0.

    image1.jpg

    Beachten Sie, dass der Ausgang ein Gleitkommawert ist. Der Division führt zu einer Fließkommawert, wenn Sie angeben, dass Sie eine ganze Zahl ausgegeben werden soll, durch den Boden Divisions-Operator mit (//).

» » » » Hinweise zum Umgang mit spezifischer zu weniger spezifische Ausnahmen in Python