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:
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>
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'
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>
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!