Programmierung & Skripten

Python -Ausnahmehandling

Python -Ausnahmehandling

Einführung

Python wird Sie wissen, wenn Sie Ihre Syntax falsch verstanden haben. Es wird sofort fehlschlagen und nicht zulassen, dass Ihr Programm ausgeführt wird.

Was ist, wenn Ihr Code eine andere Art von Problem hat?? Diese werden als Ausnahmen bezeichnet, und sie sind in der Regel schwerer zu fangen. Es liegt an Ihnen, Situationen zu erkennen, in denen hey auftauchen und sie fangen könnte, um zu verhindern, dass Ihr Programm insgesamt abstürzt.

Stellen Sie sich ein Szenario vor, in dem Sie Benutzereingaben benötigen. Möchten Sie, dass Ihr Programm jedes Mal zum Absturz eines Benutzer? Das ist alles andere als ideal. Da Sie wissen, dass es dort ein Problem geben könnte, können Sie Python sagen, dass sie nach einem Ausschau halten und sich anmutig erholen sollen.

Versuche und außer

Wenn Sie wissen, dass es eine Chance gibt, dass eine Ausnahme auftauchen wird, bitten Sie Python, das Code -Stück auszuprobieren und nach einer Ausnahme Ausschau zu halten. Schauen Sie es sich im Kontext des Zahlenbeispiels von zuvor an.

Versuchen Sie: number = int (input ("Eingeben Sie eine beliebige Nummer:")) außer: print ("Das hat nicht funktioniert ...") 

Anstatt zu stürzen, werden Ihr Programm nun fortgesetzt, auch wenn der Benutzer Müll betritt.

Sie können Python auch genau erkennen, nach welcher Art von Ausnahme Sie suchen sollten. In diesem Fall wäre es ein ValueError.

Versuche: number = int (input ("Eingabetaste:")) außer ValueError: Print ("Sie haben keine Nummer eingegeben!")) 

Wenn Python weiß, nach welcher Art von Ausnahme es sucht, können Sie ihm sagen, wie Sie entsprechend reagieren sollen.

Mach dein eigenes

Sie können Ihre eigenen Ausnahmen machen, indem Sie sie als Klassen schreiben, die aus dem erben Ausnahme Basisklasse oder eine der anderen Ausnahmeklassen.

Klasse NewException (Ausnahme): Pass 

Sie müssen in Ihr Programm aufbauen, um Ihre benutzerdefinierten Ausnahmen zu verwenden.

Ausnahmen erhöhen

Es gibt eine Option, um Ausnahmen manuell zu erhöhen heben.

Versuchen Sie: Neuexception erhöhen, außer NewException: Print ("Es ist wie geplant fehlgeschlagen!")) 

Mehrere Ausnahmen

Wenn Sie damit rechnen, dass es mehr als eine Ausnahme geben könnte, können Sie Multiplikatoren aufbauen versuchen. Beginnen Sie mit ein paar benutzerdefinierten Ausnahmen.

Klassenausnahme (Ausnahme): Passklassenausnahme (Ausnahme): Pass 

Verwenden Sie sie nun mit versuchen.

Versuchen Sie: ExceptionB aufnehmen, außer (Ausnahme, Ausnahme): Print ("Es war entweder a oder b") 

Das ist natürlich nicht das Beste, da Sie in einem echten Szenario nicht wissen würden, welche Ausnahme tatsächlich aufgetreten ist.

Versuchen Sie stattdessen, getrennte außer Klauseln zu verwenden.

Versuch: ExceptionB AUSBILDUNG AUSSCHLÜSSIGEN AUSBILDUNG: DRUCK ("Ausnahme aufgetreten") außer ExceptionB: Print ("ExceptionB passiert") außer: print ("Etwas anderes ist passiert ...") 

Der dritte außer Handlungen, um eine andere Ausnahme zu fangen. Das ist das Standardverhalten, wenn eine bestimmte Ausnahme nicht gegeben wird.

Sonst und schließlich

Es gibt zwei zusätzliche Klauseln zum Umgang mit dem, was passiert, nachdem Ausnahmen behandelt wurden. Sie helfen Ihrem Code, auf Ausnahmen zu reagieren.

Der anders Mit der Klausel können Sie Code nur ausführen, wenn keine Ausnahme erhöht wurde.

Versuche: number = int (input ("Eingabetaste:")) außer ValueError: Print ("Sie haben keine Nummer eingegeben!") else: drucken (number ** 2) 

Sie möchten nur versuchen, eine Operation auf der Nummer durchzuführen, wenn eine eingegeben wird.

Der Endlich Die Ursache wird unabhängig von Ausnahmen ausgeführt. Es wird immer am Ende des versuchen Block.

Versuche: number = int (input ("Eingabetaste:")) außer ValueError: Print ("Sie haben keine Nummer eingegeben!") else: drucken (number ** 2) Endlich: drucken (" Dies wird immer ausgeführt.")) 

Gedanken schließen

Es ist wichtig zu verstehen, was mit Ihren Programmen schief gehen kann. Es ist genauso wichtig zu wissen, dass das Ding schief gehen wird. Durch die Berücksichtigung von Ausnahmen können Sie Ihren Code so stabil wie möglich gestalten und Ihre Benutzer nicht frustrieren.

Übungen

  1. Erstellen Sie einen Code, der eine ungehandelte Ausnahme hervorruft.
  2. Verwenden Sie einen Try -Block, um diese Ausnahme zu behandeln.
  3. Erstellen Sie eine benutzerdefinierte Ausnahmeklasse
  4. Erhöhen Sie diese benutzerdefinierte Ausnahme in einem Try -Block.
  5. Erstellen Sie einen Try -Block mit einem Code, der nur ausgeführt wird, wenn eine Ausnahme nicht erhöht wird.
So spielen Sie das WMV -Format auf Linux alias Video -Codec nicht verfügbar
Vor kurzem habe ich versucht, eine WMV -Datei (Microsoft ASF) mit VLC zu öffnen. VLC konnte einen Video -Stream nicht öffnen, also habe ich ein paar w...
Linux nvidia mcptop 10 erzwungenes Modul funktioniert nicht
Dieses Problem mit dem erzwungenen Modul scheint alle wichtigen Linux -Verteilungen zu beeinflussen. Jahr 2008 war das erste Mal, dass ich dieses Prob...
Starten Sie und stoppen Sie RTorrent während der Spitzen- und Absendungsstunde auf Thecus ntop 10top 10
Ich weiß, dass es eine Syntax in einer RTorrent -Konfigurationsdatei gibt, um Gas für Uploads zu planen und für RTorrent herunterzuladen. Egal wie sch...