Maison >développement back-end >C++ >Comment puis-je gérer efficacement plusieurs exceptions attendues en C# ?

Comment puis-je gérer efficacement plusieurs exceptions attendues en C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-20 23:26:15246parcourir

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

Bonnes pratiques pour détecter plusieurs exceptions en même temps

En C#, intercepter toutes les exceptions directement à l'aide de System.Exception n'est généralement pas recommandé. La meilleure pratique consiste à détecter uniquement les exceptions spécifiques dont on sait qu’elles existent. Cependant, cette approche peut conduire à du code redondant lors de la gestion de plusieurs exceptions attendues.

Par exemple :

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

Le code ci-dessus a des structures répétées. Une méthode plus concise consiste à utiliser System.Exception pour intercepter toutes les exceptions, puis à utiliser l'instruction switch pour distinguer le type d'exception :

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

Cette approche gère efficacement plusieurs exceptions connues tout en conservant la possibilité de lancer des exceptions inattendues.

N'oubliez pas que la capture System.Exception en tant que pratique générale n'est toujours pas recommandée. N'interceptez et ne gérez que les exceptions attendues de manière appropriée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn