Événements
Créer des applications intelligentes
17 mars, 23 h - 21 mars, 23 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Propriété | Value |
---|---|
Identificateur de la règle | CA2201 |
Titre | Ne levez pas des types d'exceptions réservés |
Catégorie | Utilisation |
Le correctif est cassant ou non cassant | Rupture |
Activée par défaut dans .NET 9 | Non |
Une méthode lève un type d’exception trop général ou réservé par le runtime.
Les types d’exceptions suivants sont trop généraux pour fournir suffisamment d’informations à l’utilisateur :
Les types d’exception suivants sont réservés et doivent être levés uniquement par le Common Language Runtime :
Ne pas lever d’exceptions générales
Si vous levez un type d’exception général, tel que Exception ou SystemException, dans une bibliothèque ou un framework, cela oblige les consommateurs à intercepter toutes les exceptions, y compris les exceptions inconnues qu’ils ne savent pas comment gérer.
Au lieu de cela, levez un type plus dérivé qui existe déjà dans le framework, ou créez votre propre type qui dérive de Exception.
Lever des exceptions spécifiques
Le tableau suivant indique l’exception à lever pour différents types d’arguments non valides, y compris le paramètre de valeur dans l’accesseur set
d’une propriété.
Argument non valide | Exception |
---|---|
Référence null |
ArgumentNullException |
En dehors de la plage autorisée de valeurs (par exemple un index pour une collection ou une liste) | ArgumentOutOfRangeException |
Valeur enum non valide |
InvalidEnumArgumentException |
Contient un format qui ne répond pas aux spécifications de paramètre d’une méthode (par exemple la chaîne de format pour ToString(String) ) |
FormatException |
Autrement non valide | ArgumentException |
Le tableau suivant indique l’exception à lever pour différents types d’opérations non valides.
Opération non valide | Exception |
---|---|
L’opération n’est pas valide pour l’état actuel d’un objet. | InvalidOperationException |
L’opération est effectuée sur un objet qui a été supprimé. | ObjectDisposedException |
L’opération n’est pas prise en charge (comme par exemple dans une substitution de Stream.Write dans un flux ouvert pour lecture). |
NotSupportedException |
La conversion entraînerait un dépassement de capacité (comme par exemple dans une surcharge d’opérateur de cast explicite). | OverflowException |
Pour toutes les autres situations, envisagez de créer et de lever votre propre type qui dérive de Exception.
Pour corriger une violation de cette règle, remplacez le type de l’exception levée par un type spécifique qui n’est pas l’un des types réservés.
Ne supprimez aucun avertissement de cette règle.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événements
Créer des applications intelligentes
17 mars, 23 h - 21 mars, 23 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenant