Gestion et levée des exceptions

Les programmes doivent pouvoir gérer de manière uniforme les erreurs qui se produisent au moment de l'exécution. Le Common Language Runtime facilite grandement le design de logiciels à tolérance de pannes en fournissant un modèle pour la notification des erreurs aux programmes de manière uniforme. Toutes les opérations .NET Framework indiquent une erreur en levant des exceptions.

D'ordinaire, le modèle de gestion des erreurs d'un langage reposait soit sur le mode unique utilisé par le langage en question pour détecter des erreurs et leur trouver des gestionnaires appropriés, soit sur le mécanisme de gestion des erreurs fourni par le système d'exploitation. Le runtime implémente la gestion des exceptions de la façon suivante :

  • gère les exceptions sans tenir compte du langage qui génère l'exception ni du langage qui gère l'exception ;

  • ne requiert aucune syntaxe particulière pour la gestion des exceptions, mais laisse chaque langage définir sa propre syntaxe ;

  • accepte la levée d'exceptions interprocessus et même au-delà des limites d'ordinateur.

Les exceptions offrent plusieurs avantages par rapport à d'autres méthodes de notification d'erreurs, telles que les codes de retour. Les erreurs ne passent pas inaperçues. La propagation des valeurs non valides à travers le système est interrompue. Vous n'êtes pas obligé de vérifier les codes de retour. Un code de gestion des exceptions peut être aisément ajouté pour augmenter la fiabilité du programme. Enfin, la gestion des exceptions par le runtime est plus rapide que la gestion des erreurs C++ qui fait appel à Windows.

Dans la mesure où les threads d'exécution parcourent couramment des blocs de code managé et non managé, le runtime peut lever ou intercepter des exceptions dans un code managé ou non managé. Le code non managé peut comprendre à la fois des exceptions SEH de style C++ et des HRESULTS COM.

Dans cette section

Référence

  • Classe Exception
    Informations de référence relatives à la classe à partir de laquelle toutes les exceptions héritent.
  • ApplicationException, classe
    Informations de référence relatives à la classe à partir de laquelle toutes les exceptions générées par l'application doivent dériver.
  • SystemException, classe
    Informations de référence relatives à la classe à partir de laquelle toutes les exceptions générées par le système dérivent.

Rubriques connexes