Try/Except vs. If/Else: Wann man jedes für die Fehlerbehandlung verwendet

Mary-Kate Olsen
Freigeben: 2024-10-22 15:00:03
Original
895 Leute haben es durchsucht

Try/Except vs. If/Else: When to Use Each for Error Handling

Ausnahmebehandlung: Try/Except vs. If/Else

Wenn Programmierer mit potenziellen Fehlern oder Ausnahmen im Code konfrontiert werden, zögern sie oft, sie zu verwenden try/exclusive-Blöcke oder if/else-Anweisungen. Obwohl diese Entscheidung trivial erscheinen mag, kann sie sich erheblich auf das Design, die Leistung und die Lesbarkeit des Codes auswirken.

Try/Except vs. If/Else: Bevorzugter Ansatz

Das Allgemeine Der von PEP 20 unterstützte Konsens besteht darin, try/exclusive gegenüber if/else zu priorisieren, wenn:

  • Es führt zu Leistungsverbesserungen, indem unnötige Suchvorgänge oder Berechnungen verhindert werden.
  • Es vereinfacht den Code durch Reduzierung der Zeilenanzahl und Verbesserung der Lesbarkeit.

Geschwindigkeitsoptimierung

Betrachten Sie das Beispiel des Zugriffs auf ein Element in einer Liste:

<code class="python">try:
    x = my_list[index]
except IndexError:
    x = 'NO_ABC'</code>
Nach dem Login kopieren

Hier ist try/exclusive von Vorteil, wenn der Index wahrscheinlich in der Liste gefunden wird, wodurch das Auftreten von IndexError minimiert wird. Im Gegensatz dazu würde ein if/else-Ansatz eine zusätzliche Suche erfordern:

<code class="python">if index < len(my_list):
    x = my_list[index]
else:
    x = 'NO_ABC'
Nach dem Login kopieren

Ausnahmebehandlung und Lesbarkeit

Python fördert die Verwendung von Ausnahmen als Teil seines EAFP (Leichter um Vergebung zu bitten als um Erlaubnis) Philosophie. Durch das elegante Abfangen von Fehlern in Try/Except-Blöcken stellen Programmierer sicher, dass Ausnahmen nicht unbemerkt passieren. Darüber hinaus ermöglicht try/exclusive einen prägnanteren und eleganteren Code:

<code class="python">Worse (LBYL: 'look before you leap'):

if not isinstance(s, str) or not s.isdigit():
    return None
elif len(s) > 10:    #too many digits for int conversion
    return None
else:
    return int(s)

Better (EAFP: Easier to ask for forgiveness than permission):

try:
    return int(s)
except (TypeError, ValueError, OverflowError): #int conversion failed
    return None</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonTry/Except vs. If/Else: Wann man jedes für die Fehlerbehandlung verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!