


Wie kann ich mehrere Ausnahmen in einem einzigen Codeblock effizient abfangen?
Jan 20, 2025 pm 11:17 PMMehrere Ausnahmen in einem einzigen Codeblock abfangen
In Programmiersprachen ist das Abfangen von Ausnahmen ein wichtiger Teil der Fehlerbehandlung. Wenn jedoch mehrere spezifische Ausnahmen abgefangen werden müssen, insbesondere wenn mehrere Vorgänge an einem Objekt ausgeführt werden, kann es zu ausführlichen und sich wiederholenden Ausnahmen kommen.
Frage:
Betrachten Sie den folgenden Code, in dem Sie versuchen, eine GUID aus einer Abfragezeichenfolge zu analysieren und sie auf ein Feld festzulegen:
<code>try { WebId = new Guid(queryString["web"]); } catch (FormatException) { WebId = Guid.Empty; } catch (OverflowException) { WebId = Guid.Empty; }</code>
Wenn in diesem Beispiel während der GUID-Analyse eine FormatException oder OverflowException auftritt, wird die WebId auf Guid.Empty gesetzt. Wenn jedoch eine andere unerwartete Ausnahme auftritt, wird sie weitergegeben, ohne dass sie behandelt wird. Um Boilerplate-Code zu vermeiden und mehrere Ausnahmen effizient zu behandeln, ist eine bessere Lösung erforderlich.
Lösung: System.Exception abfangen und je nach Typ wechseln
Um mehrere Ausnahmen in einem einzigen Codeblock abzufangen, können Sie die Catch-Syntax (Exception ex) verwenden. Dadurch werden alle von der Basisklasse Exception geerbten Ausnahmen abgefangen, einschließlich spezifischer Ausnahmen wie FormatException und OverflowException.
Nachdem Sie eine Ausnahme abgefangen haben, können Sie eine Switch-Anweisung basierend auf dem Typ der Ausnahme verwenden, um zu bestimmen, wie mit ihr umgegangen werden soll. Wenn es sich bei der Ausnahme um eine bekannte Ausnahme handelt (z. B. FormatException oder OverflowException), können Sie bestimmte Aktionen ausführen (z. B. WebId auf Guid.Empty festlegen). Andernfalls können Sie die Ausnahme erneut auslösen, damit Code auf höherer Ebene sie verarbeiten kann.
<code>catch (Exception ex) { if (ex is FormatException || ex is OverflowException) { WebId = Guid.Empty; } else throw; }</code>
Dieser Ansatz ermöglicht es Ihnen, mehrere spezifische Ausnahmen in einem Codeblock abzufangen und sie nach Bedarf zu behandeln, während Sie gleichzeitig die Ausbreitung unerwarteter Ausnahmen zulassen.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Ausnahmen in einem einzigen Codeblock effizient abfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

eindeutiger Gebrauch und Phrasenfreigabe

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?
