Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
1 sur 1 ont trouvé cela utile - Évaluez ce sujet

Exception, classe

Représente les erreurs qui se produisent lors de l'exécution de l'application.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.None)]
public class Exception : ISerializable, _Exception

Le type Exception expose les membres suivants.

  NomDescription
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreException()Initialise une nouvelle instance de la classe Exception.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreException(String)Initialise une nouvelle instance de la classe Exception avec un message d'erreur spécifié.
Méthode protégéeException(SerializationInfo, StreamingContext)Initialise une nouvelle instance de la classe Exception avec des données sérialisées.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreException(String, Exception)Initialise une nouvelle instance de la classe Exception avec un message d'erreur spécifié et une référence à l'exception interne qui est à l'origine de cette exception.
Début
  NomDescription
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreDataObtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l'utilisateur sur l'exception.
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreHelpLinkObtient ou définit un lien vers le fichier d'aide associé à cette exception.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreHResultObtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreInnerExceptionObtient l'instance Exception qui a provoqué l'exception actuelle.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreMessageObtient un message qui décrit l'exception actuelle.
Propriété publiquePris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreSourceObtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur.
Propriété publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreStackTraceObtient une représentation sous forme de chaîne des frames immédiates sur la pile des appels.
Propriété publiqueTargetSiteObtient la méthode qui lève l'exception actuelle.
Début
  NomDescription
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetBaseExceptionEn cas de substitution dans une classe dérivée, retourne Exception qui est à l'origine d'une ou de plusieurs exceptions suivantes.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetHashCodeSert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publiqueGetObjectDataEn cas de substitution dans une classe dérivée, définit SerializationInfo avec des informations sur l'exception.
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreGetTypeObtient le type au moment de l'exécution de l'instance actuelle.

Dans XNA Framework 3.0, ce membre est hérité de Object.GetType().


Dans Bibliothèque de classes portable Bibliothèque de classes portable, ce membre est hérité de Object.GetType().


Dans .NET pour les applications du Windows Store Windows 8, ce membre est hérité de Object.GetType().
Méthode protégéePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publiquePris en charge par XNA FrameworkPris en charge par Bibliothèque de classes portablePris en charge dans .NET pour les applications du Windows StoreToStringCrée et retourne une chaîne représentant l'exception en cours. (Substitue Object.ToString().)
Début
  NomDescription
Événement protégéSerializeObjectStateSe produit lorsqu'une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées relatives à l'exception.
Début

Cette classe est la classe de base pour toutes les exceptions. Quand une erreur se produit, le système ou l'application en cours d'exécution la signale en levant une exception contenant des informations sur l'erreur. Une fois levée, l'exception est gérée par l'application ou le gestionnaire d'exceptions par défaut.

Blocs try-catch

Le Common Language Runtime fournit un modèle de gestion d'exceptions basé sur la représentation des exceptions sous forme d'objets ainsi que sur la séparation du code du programme et du code de gestion des exceptions en blocs try et en blocs catch, respectivement. Il peut y avoir un ou plusieurs blocs catch, chaque bloc étant destiné à gérer un type particulier d'exception, ou un seul bloc destiné à intercepter une exception plus spécifique qu'un autre bloc.

Si une application gère les exceptions qui se produisent lors de l'exécution d'un bloc de code de l'application, le code doit être placé dans une instruction try. Le code de l'application contenu dans une instruction try est un bloc try. Le code de l'application qui gère les exceptions levées par un bloc try est placé dans une instruction catch ; ce bloc est un bloc catch. Zéro ou plusieurs blocs catch sont associés à un bloc try et chaque bloc catch comporte un filtre de types qui détermine les types d'exceptions à gérer.

Lorsqu'une exception se produit dans un bloc try, le système recherche les blocs catch associés dans l'ordre dans lequel ils apparaissent dans le code de l'application, jusqu'à ce qu'il trouve un bloc catch qui gère l'exception en question. Un bloc catch gère une exception de type T si le filtre de types du bloc catch spécifie T ou tout autre type dont T dérive. Le système arrête la recherche après avoir trouvé le premier bloc catch qui gère l'exception. C'est pourquoi, dans le code de l'application, un bloc catch qui gère un type particulier doit être spécifié avant un bloc catch qui gère ses types de base, comme le montre l'exemple donné après cette section. Un bloc catch qui gère System.Exception est spécifié en dernier.

Si aucun des blocs catch associés au bloc try en cours ne gère l'exception concernée et que le bloc try en cours est imbriqué dans d'autres blocs try dans l'appel en cours, la recherche porte sur les blocs catch associés au bloc try englobant suivant. Si aucun bloc catch n'est trouvé pour gérer l'exception, le système effectue une recherche dans les niveaux d'imbrication précédents dans l'appel en cours. Si aucun bloc catch n'est trouvé pour l'exception dans l'appel en cours, l'exception remonte dans la pile des appels et la recherche d'un bloc catch qui gère l'exception est effectuée dans le frame de pile précédent. La recherche continue dans la pile des appels jusqu'à ce que l'exception soit gérée ou tant que des frames sont présents dans la pile des appels. Si le haut de la pile des appels est atteint sans qu'un bloc catch gérant l'exception n'ait été trouvé, le gestionnaire d'exceptions par défaut gère l'exception et l'application s'arrête.

Fonctionnalités des types d'exceptions

Les types d'exceptions prennent en charge les fonctionnalités suivantes :

  • Texte explicite décrivant l'erreur. Lorsqu'une exception se produit, le runtime informe l'utilisateur par le biais d'un message textuel de la nature de l'erreur et suggère une action pour résoudre le problème. Ce message textuel est contenu dans la propriété Message de l'objet exception. Lors de la création de l'objet exception, vous pouvez passer au constructeur une chaîne textuelle qui décrit en détail cette exception particulière. Si aucun argument de message d'erreur n'est fourni au constructeur, le message d'erreur par défaut est utilisé.

  • État de la pile des appels lors de la levée de l'exception. La propriété StackTrace conserve une trace de la pile qui peut être utilisée pour déterminer l'endroit où l'erreur se produit dans le code. La trace de la pile répertorie toutes les méthodes appelées ainsi que les numéros de ligne, dans le fichier source, où les appels ont été réalisés.

Catégories des types d'exceptions

Il existe deux catégories d'exceptions sous la classe de base Exception :

  • les classes d'exceptions prédéfinies du Common Language Runtime, dérivées de SystemException ;

  • les classes d'exceptions de l'application définies par l'utilisateur, dérivées de ApplicationException.

Propriétés de classe d'exception

Exception inclut plusieurs propriétés qui permettent d'identifier l'emplacement du code, le type, le fichier d'aide et la raison de l'exception : StackTrace, InnerException, Message, HelpLink, HResult, Source, TargetSite et Data.

Lorsqu'une relation de causalité existe entre deux exceptions ou plus, la propriété InnerException conserve ces informations. L'exception externe est levée en réponse à cette exception interne. Le code qui gère l'exception externe peut utiliser les informations de l'exception interne antérieure pour gérer l'erreur de manière plus appropriée. Des informations supplémentaires sur l'exception peuvent être stockées dans la propriété Data.

La chaîne du message d'erreur passée au constructeur lors de la création de l'objet exception doit être localisée et peut être fournie à partir d'un fichier de ressources en utilisant ResourceManager. Pour plus d'informations sur la localisation des ressources, consultez la vue d'ensemble de l'espace de noms System.Resources et Empaquetage et déploiement de ressources dans des applications de bureau.

Pour fournir à l'utilisateur des informations complètes sur la raison de la levée de l'exception, la propriété HelpLink peut contenir une URL (ou URN) pointant vers un fichier d'aide.

Exception utilise HRESULT COR_E_EXCEPTION dont la valeur est 0x80131500.

Pour obtenir une liste des valeurs initiales des propriétés d'une instance de Exception, consultez les constructeurs Exception.

Considérations sur les performances

Une quantité importante de ressources système et de temps d'exécution est utilisée lorsque vous levez ou gérez une exception. Levez des exceptions uniquement pour gérer des conditions vraiment extraordinaires, et non pas pour gérer des événements ou un contrôle de flux prévisibles. Par exemple, votre application peut raisonnablement lever une exception si l'argument d'une méthode n'est pas valide, car vous voulez appeler votre méthode avec des paramètres valides. Un argument de méthode non valide signifie que quelque chose d'anormal s'est produit. Inversement, ne levez pas d'exception si l'entrée d'utilisateur n'est pas valide, car vous pouvez vous attendre à ce que les utilisateurs entrent parfois des données non valides. Dans ce cas, fournissez un mécanisme de nouvelle tentative pour permettre aux utilisateurs de corriger leur entrée.

Levez uniquement des exceptions pour des conditions anormales, interceptez les exceptions dans un gestionnaire d'exceptions à usage général qui s'applique à la plus grande part de votre application, et non dans un gestionnaire qui s'applique à une exception spécifique. Le raisonnement propre à cette approche est que la plupart des erreurs peuvent être gérées par validation et le code de gestion des erreurs à proximité de l'erreur ; aucune exception ne doit être levée ni interceptée. Le gestionnaire d'exceptions à usage général intercepte les exceptions vraiment inattendues, levées n'importe où dans l'application.

De plus, ne levez pas d'exception lorsqu'un code de retour est suffisant ; ne convertissez pas de code de retour en exception ; et n'interceptez pas régulièrement d'exception, ignorez-la, puis continuez le processus.

L'exemple de code suivant illustre un bloc catch défini pour gérer les erreurs ArithmeticException. Ce bloc catch intercepte également les erreurs DivideByZeroException, car DivideByZeroException dérive de ArithmeticException et aucun bloc catch n'est défini explicitement pour les erreurs DivideByZeroException.


using System;

class ExceptionTestClass 
{
   public static void Main() 
   {
      int x = 0;
      try 
      {
         int y = 100/x;
      }
         catch (ArithmeticException e) 
         {
            Console.WriteLine("ArithmeticException Handler: {0}", e.ToString());
         }
         catch (Exception e) 
         {
            Console.WriteLine("Generic Exception Handler: {0}", e.ToString());
         }
   }	
}
/*
This code example produces the following results:

ArithmeticException Handler: System.DivideByZeroException: Attempted to divide by zero.
   at ExceptionTestClass.Main()

*/


.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
System.Object
  System.Exception
    Microsoft.Build.BuildEngine.InternalLoggerException
    Microsoft.Build.BuildEngine.InvalidProjectFileException
    Microsoft.Build.BuildEngine.InvalidToolsetDefinitionException
    Microsoft.Build.BuildEngine.RemoteErrorException
    Microsoft.Build.Exceptions.BuildAbortedException
    Microsoft.Build.Exceptions.InternalLoggerException
    Microsoft.Build.Exceptions.InvalidProjectFileException
    Microsoft.Build.Exceptions.InvalidToolsetDefinitionException
    Microsoft.Build.Framework.LoggerException
    Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
    Microsoft.CSharp.RuntimeBinder.RuntimeBinderInternalCompilerException
    Microsoft.JScript.CmdLineException
    Microsoft.JScript.ParserException
    Microsoft.VisualBasic.ApplicationServices.CantStartSingleInstanceException
    Microsoft.VisualBasic.ApplicationServices.NoStartupFormException
    Microsoft.VisualBasic.Compatibility.VB6.WebClassContainingClassNotOptional
    Microsoft.VisualBasic.Compatibility.VB6.WebClassCouldNotFindEvent
    Microsoft.VisualBasic.Compatibility.VB6.WebClassNextItemCannotBeCurrentWebItem
    Microsoft.VisualBasic.Compatibility.VB6.WebClassNextItemRespondNotFound
    Microsoft.VisualBasic.Compatibility.VB6.WebClassUserWebClassNameNotOptional
    Microsoft.VisualBasic.Compatibility.VB6.WebClassWebClassFileNameNotOptional
    Microsoft.VisualBasic.Compatibility.VB6.WebClassWebItemNotValid
    Microsoft.VisualBasic.Compatibility.VB6.WebItemAssociatedWebClassNotOptional
    Microsoft.VisualBasic.Compatibility.VB6.WebItemClosingTagNotFound
    Microsoft.VisualBasic.Compatibility.VB6.WebItemCouldNotLoadEmbeddedResource
    Microsoft.VisualBasic.Compatibility.VB6.WebItemCouldNotLoadTemplateFile
    Microsoft.VisualBasic.Compatibility.VB6.WebItemNameNotOptional
    Microsoft.VisualBasic.Compatibility.VB6.WebItemNoTemplateSpecified
    Microsoft.VisualBasic.Compatibility.VB6.WebItemTooManyNestedTags
    Microsoft.VisualBasic.Compatibility.VB6.WebItemUnexpectedErrorReadingTemplateFile
    Microsoft.VisualBasic.CompilerServices.IncompleteInitialization
    Microsoft.VisualBasic.CompilerServices.InternalErrorException
    Microsoft.VisualBasic.FileIO.MalformedLineException
    System.Activities.DynamicUpdate.InstanceUpdateException
    System.Activities.ExpressionParser.SourceExpressionException
    System.Activities.Expressions.LambdaSerializationException
    System.Activities.InvalidWorkflowException
    System.Activities.Presentation.Metadata.AttributeTableValidationException
    System.Activities.Statements.WorkflowTerminatedException
    System.Activities.VersionMismatchException
    System.Activities.WorkflowApplicationException
    System.AddIn.Hosting.AddInSegmentDirectoryNotFoundException
    System.AddIn.Hosting.InvalidPipelineStoreException
    System.AggregateException
    System.ApplicationException
    System.ComponentModel.Composition.CompositionContractMismatchException
    System.ComponentModel.Composition.CompositionException
    System.ComponentModel.Composition.ImportCardinalityMismatchException
    System.ComponentModel.Composition.Primitives.ComposablePartException
    System.ComponentModel.DataAnnotations.ValidationException
    System.ComponentModel.Design.ExceptionCollection
    System.Configuration.Provider.ProviderException
    System.Configuration.SettingsPropertyIsReadOnlyException
    System.Configuration.SettingsPropertyNotFoundException
    System.Configuration.SettingsPropertyWrongTypeException
    System.Data.Linq.ChangeConflictException
    System.Diagnostics.Eventing.Reader.EventLogException
    System.Diagnostics.Tracing.EventSourceException
    System.DirectoryServices.ActiveDirectory.ActiveDirectoryObjectExistsException
    System.DirectoryServices.ActiveDirectory.ActiveDirectoryObjectNotFoundException
    System.DirectoryServices.ActiveDirectory.ActiveDirectoryOperationException
    System.DirectoryServices.ActiveDirectory.ActiveDirectoryServerDownException
    System.DirectoryServices.Protocols.DirectoryException
    System.IdentityModel.AsynchronousOperationException
    System.IdentityModel.Metadata.MetadataSerializationException
    System.IdentityModel.Protocols.WSTrust.WSTrustSerializationException
    System.IdentityModel.RequestException
    System.IdentityModel.Selectors.CardSpaceException
    System.IdentityModel.Selectors.IdentityValidationException
    System.IdentityModel.Selectors.PolicyValidationException
    System.IdentityModel.Selectors.ServiceBusyException
    System.IdentityModel.Selectors.ServiceNotStartedException
    System.IdentityModel.Selectors.StsCommunicationException
    System.IdentityModel.Selectors.UnsupportedPolicyOptionsException
    System.IdentityModel.Selectors.UntrustedRecipientException
    System.IdentityModel.Selectors.UserCancellationException
    System.IdentityModel.Services.AsynchronousOperationException
    System.IdentityModel.Services.FederatedAuthenticationSessionEndingException
    System.IdentityModel.Services.FederationException
    System.IdentityModel.Services.WSFederationMessageException
    System.InvalidTimeZoneException
    System.IO.IsolatedStorage.IsolatedStorageException
    System.IO.Log.SequenceFullException
    System.Management.Instrumentation.InstrumentationBaseException
    System.Management.Instrumentation.WmiProviderInstallationException
    System.Net.Http.HttpRequestException
    System.Net.Mail.SmtpException
    System.Net.PeerToPeer.PeerToPeerException
    System.Runtime.CompilerServices.RuntimeWrappedException
    System.Runtime.DurableInstancing.InstancePersistenceException
    System.Runtime.Remoting.MetadataServices.SUDSGeneratorException
    System.Runtime.Remoting.MetadataServices.SUDSParserException
    System.Runtime.Serialization.InvalidDataContractException
    System.Security.RightsManagement.RightsManagementException
    System.ServiceModel.Channels.InvalidChannelBindingException
    System.SystemException
    System.Threading.BarrierPostPhaseException
    System.Threading.LockRecursionException
    System.Threading.Tasks.TaskSchedulerException
    System.TimeZoneNotFoundException
    System.Web.Query.Dynamic.ParseException
    System.Web.Security.MembershipCreateUserException
    System.Web.Security.MembershipPasswordException
    System.Web.UI.ViewStateException
    System.Web.UI.WebControls.EntityDataSourceValidationException
    System.Web.UI.WebControls.LinqDataSourceValidationException
    System.Windows.Automation.NoClickablePointException
    System.Windows.Automation.ProxyAssemblyNotLoadedException
    System.Windows.Controls.PrintDialogException
    System.Windows.Forms.AxHost.InvalidActiveXStateException
    System.Windows.Xps.XpsException
    System.Windows.Xps.XpsWriterException
    System.Workflow.Activities.Rules.RuleException
    System.Workflow.ComponentModel.Compiler.WorkflowValidationFailedException
    System.Workflow.ComponentModel.Serialization.WorkflowMarkupSerializationException
    System.Workflow.ComponentModel.WorkflowTerminatedException
    System.Workflow.Runtime.WorkflowOwnershipException
    System.Xaml.XamlException
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.