Heim > Backend-Entwicklung > Python-Tutorial > Bitten Sie um Vergebung, nicht um Erlaubnis: Wann ist die Ausnahmebehandlung besser als präventive Prüfungen?

Bitten Sie um Vergebung, nicht um Erlaubnis: Wann ist die Ausnahmebehandlung besser als präventive Prüfungen?

Linda Hamilton
Freigeben: 2024-12-30 21:59:14
Original
334 Leute haben es durchsucht

Ask Forgiveness, Not Permission: When Is Exception Handling Better Than Preemptive Checks?

„Bitte um Vergebung, nicht um Erlaubnis“: Eine technische Erklärung

In der Programmierung beschreibt der Ausdruck „Bitte um Vergebung, nicht um Erlaubnis“ zwei gegensätzliche Codierungsstile :

"Um Erlaubnis bitten" Stil:

if can_do_operation():
    perform_operation()
else:
    handle_error_case()
Nach dem Login kopieren

„Bitte um Vergebung“ Stil:

try:
    perform_operation()
except Unable_to_perform:
    handle_error_case()
Nach dem Login kopieren

Im „um Erlaubnis bitten“-Ansatz das Vorhandensein der can_do_operation ()-Prüfung verhindert, dass der perform_operation()-Aufruf ausgeführt wird, wenn die Operation nicht ausgeführt werden kann. Dieser Ansatz hängt jedoch von der Genauigkeit der can_do_operation()-Prüfung ab, die in dynamischen Umgebungen oder beim Umgang mit externen Ressourcen möglicherweise nicht immer zuverlässig ist.

Vorteile von „Ask for Forgiveness“

Der Stil „um Vergebung bitten“ bietet mehrere Möglichkeiten Vorteile:

  • Behandelt gleichzeitige Situationen: In Umgebungen mit mehreren Threads oder mehreren Ressourcen können sich die Bedingungen zwischen der Prüfung und dem Vorgang ändern, wodurch der Ansatz „um Erlaubnis bitten“ unwirksam wird.
  • Vermeidet übermäßig restriktive Kontrollen: „Um Erlaubnis bitten“ erfordert die Definition präziser und umfassender Kriterien. was herausfordernd und fehleranfällig sein kann. Der Ansatz „um Vergebung bitten“ ermöglicht mehr Flexibilität und vermeidet den unbeabsichtigten Ausschluss gültiger Vorgänge.

Beispiel: Zugriff auf Instanzattribute

In Ihrem Beispiel Sie erkundigen sich nach der Verwendung von „um Vergebung bitten“ beim Zugriff auf Instanzattribute. Obwohl es normalerweise als Programmierfehler angesehen wird, kann der Zugriff auf ein nicht vorhandenes Attribut ein gültiges Szenario sein, beispielsweise beim Umgang mit optionalen Objektteilen.

Anstatt die Existenz eines Attributs (foo.bar) mit einem zu testen Als Ausnahmehandler ist es eher pythonisch, zu prüfen, ob das Attribut nicht None ist. Bei optionalen Attributen wird das Balkenattribut normalerweise zunächst auf „Keine“ initialisiert und auf einen aussagekräftigen Wert gesetzt, sofern verfügbar. Dies ermöglicht den folgenden Test:

if foo.bar is not None:
    handle_optional_part(foo.bar)
else:
    default_handling()
Nach dem Login kopieren

Schlussfolgerung

Das Prinzip „Bitte um Vergebung, nicht um Erlaubnis“ empfiehlt, Ausnahmen als natürlichen Teil der Programmausführung zu berücksichtigen, insbesondere wenn Umgang mit optionaler Funktionalität oder externen Ressourceninteraktionen. Es bietet größere Flexibilität und Anpassungsfähigkeit in dynamischen und gleichzeitigen Umgebungen und ermöglicht gleichzeitig die Fehlerbehandlung durch Ausnahmebehandlungsmechanismen.

Das obige ist der detaillierte Inhalt vonBitten Sie um Vergebung, nicht um Erlaubnis: Wann ist die Ausnahmebehandlung besser als präventive Prüfungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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