Heim >Backend-Entwicklung >C++ >Wie kann ich mehrere erwartete Ausnahmen in C# effizient behandeln?

Wie kann ich mehrere erwartete Ausnahmen in C# effizient behandeln?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-20 23:26:15172Durchsuche

How Can I Efficiently Handle Multiple Expected Exceptions in C#?

Best Practices zum gleichzeitigen Abfangen mehrerer Ausnahmen

In C# wird das direkte Abfangen aller Ausnahmen mit System.Exception im Allgemeinen nicht empfohlen. Die beste Vorgehensweise besteht darin, nur bestimmte Ausnahmen abzufangen, von denen bekannt ist, dass sie existieren. Allerdings kann dieser Ansatz bei der Behandlung mehrerer erwarteter Ausnahmen zu redundantem Code führen.

Zum Beispiel:

<code class="language-csharp">try
{
    WebId = new Guid(queryString["web"]);
}
catch (FormatException)
{
    WebId = Guid.Empty;
}
catch (OverflowException)
{
    WebId = Guid.Empty;
}</code>

Der obige Code weist wiederholte Strukturen auf. Eine prägnantere Methode besteht darin, System.Exception zu verwenden, um alle Ausnahmen abzufangen, und dann die switch-Anweisung zu verwenden, um den Ausnahmetyp zu unterscheiden:

<code class="language-csharp">catch (Exception ex)
{
    switch (ex)
    {
        case FormatException:
        case OverflowException:
            WebId = Guid.Empty;
            break;
        default:
            throw; // 将未处理的异常重新抛出
    }
}</code>

Dieser Ansatz behandelt effizient mehrere bekannte Ausnahmen und behält gleichzeitig die Möglichkeit, unerwartete Ausnahmen auszulösen.

Bitte denken Sie daran, dass die Erfassung System.Exception als Allgemeinarztpraxis weiterhin nicht empfohlen wird. Erwartete Ausnahmen nur angemessen abfangen und behandeln.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere erwartete Ausnahmen in C# effizient behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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