Mehrere Ausnahmen problemlos verarbeiten
Die herkömmliche Praxis der Ausnahmebehandlung empfiehlt im Allgemeinen, das Abfangen allgemeiner System.Exception-Fehler zu vermeiden. Stattdessen wird empfohlen, nur bestimmte Ausnahmen zu behandeln, die der Anwendung „bekannt“ sind. Allerdings führt dieser Ansatz manchmal zu Codeduplizierung.
Stellen Sie sich das folgende Szenario vor:
<code class="language-csharp">try { WebId = new Guid(queryString["web"]); } catch (FormatException) { WebId = Guid.Empty; } catch (OverflowException) { WebId = Guid.Empty; }</code>
Um diese Duplizierung zu vermeiden, besteht eine elegantere Lösung darin, beide Ausnahmen mit einem einzigen Catch-Block abzufangen:
<code class="language-csharp">catch (Exception ex) { if (ex is FormatException || ex is OverflowException) { WebId = Guid.Empty; } else throw; }</code>
Dieser Code verwendet if-Anweisungen, um bestimmte Ausnahmen zu identifizieren, die behandelt werden müssen. Der Vorteil dieses Ansatzes besteht darin, dass mehrere Ausnahmen gleichzeitig abgefangen werden können und gleichzeitig die Ausbreitung unerwarteter Ausnahmen im Stapel möglich ist. Dies ist besonders nützlich, wenn ein Objekt mehrmals geändert wird und zurückgesetzt werden muss, wenn einer der Vorgänge fehlschlägt.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere spezifische Ausnahmen in C# effizient behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!