Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment faire pour utiliser la gestion structurée des exceptions dans Visual Basic.NET ou Visual Basic 2005

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 315965
Résumé
Cet article explique comment utiliser la gestion structurée des exceptions dans Visual Basic.NET ou Visual Basic 2005.

back to the top

Configuration requise

La liste suivante met en évidence le matériel recommandé, logiciels, infrastructure réseau et service packs dont vous avez besoin :
  • Visual Basic.NET ou Visual Basic 2005
Cet article suppose que vous êtes familiarisé avec les rubriques suivantes :
  • Visual Basic.NET ou Visual Basic 2005
  • Microsoft Visual Studio.NET ou Microsoft 2005 Visual Studio
back to the top

Gestion structurée des exceptions

Visual Basic.NET ou Visual Basic 2005 offre la gestion structurée des exceptions qui fournit une alternative puissante et plus lisible pour gérer les erreurs « On Error Goto », qui est disponible dans les versions précédentes de Microsoft Visual Basic. Gestion structurée des exceptions sont plus puissante car elle vous permet d'imbriquer des gestionnaires d'erreurs à l'intérieur d'autres gestionnaires d'erreurs dans la même procédure. En outre, gestion structurée des exceptions utilise une syntaxe de bloc similaire à la Si...Else...End If instruction. Ainsi, Visual Basic.NET et Visual Basic 2005 le code plus lisible et plus facile à gérer.

Remarque: Visual Basic.NET ou Visual Basic 2005 conserve la syntaxe « On Error Goto » pour la compatibilité ascendante. Vous pouvez toujours utiliser cette syntaxe dans Visual Basic.NET ou 2005 Visual Basic code. Cependant, vous ne pouvez pas combiner gestion structurée des exceptions et les instructions On Error dans la même procédure. Lorsque vous écrivez un nouveau code, Microsoft recommande l'utilisation de la gestion d'exception structurée.

La syntaxe de base de gestion structurée des erreurs est la suivante :
Try   'Code that may raise an error.Catch   'Code to handle the error.Finally   'Code to do any final clean up.End Try				
Les instructions Essayez et de fin sont requises. Les instructions Catch et Finally ne sont pas obligatoires, même si vous devez inclure au moins un d'eux dans votre code. Vous pouvez également spécifier plusieurs instructions Catch afin que chaque bloc Catch gère une erreur spécifique.

back to the top

Intercepter une Exception

  1. Démarrez Visual Studio.NET ou Visual Studio 2005.
  2. Créer un nouveau projet Application Console dans Visual Basic.NET ou Visual Basic 2005.
  3. Dans la procédure Sub Main , ajoutez le code suivant :
    Dim a As Integer = 0Dim b As Integer = 0Dim c As Integer = 0Try  a = b \ cCatch exc As Exception  Console.WriteLine("A run-time error occurred")Finally  Console.ReadLine()End Try					
  4. Dans le menu Déboguer , cliquez sur Démarrer pour exécuter l'application. Le code essaie de diviser un nombre par zéro. Il s'agit d'une opération non conforme qui provoque une division par zéro exception. Heureusement, le bloc Catch intercepte cette erreur, et la fenêtre de Console affiche le message d'erreur suivant :
    A run-time error has occurred						
  5. Fermez la fenêtre de Console.
back to the top

Intercepter plusieurs Exceptions

Cette section montre comment utiliser plusieurs instructions Catch pour gérer les erreurs différentes.
  1. Ouvrez le projet d'Application Console que vous avez créé dans la section précédente.
  2. Dans la procédure Sub Main , remplacez le code que vous avez copié dans la section précédente avec le code suivant :
    Dim a As Integer = 2147483647Dim b As Integer = 0Dim c As Integer = 0Try  a += 1Catch exc As DivideByZeroException  Console.WriteLine("Error: Divide by zero")Catch exc As OverflowException  Console.WriteLine("Error: Overflow")Finally  Console.ReadLine()End Try						
    Ce code comprend deux blocs Catch : une pour intercepter la précédente division par zéro et l'autre pour intercepter l'erreur de débordement de la nouvelle.
  3. Dans le menu Déboguer , cliquez sur Démarrer pour exécuter l'application. La fenêtre de Console affiche le message d'erreur suivant :
    Error: Overflow						
  4. Fermez la fenêtre de Console.
  5. Parce que vous ne pouvez pas toujours anticiper toutes les erreurs qui peuvent se produire, vous pouvez ajouter un bloc intercepter toutes les exceptions inattendues. Par exemple, ajoutez le code suivant avant l'instruction Finally pour intercepter des erreurs inattendues et afficher le message d'erreur approprié :
    Catch exc As ExceptionConsole.WriteLine("Error: " & exc.Message)					
  6. Dans le menu fichier , cliquez sur Fermer la Solution.
back to the top

Lever une Exception

Gestion structurée des exceptions utilise l'instruction Catch pour intercepter une exception. Gestion structurée des exceptions également fournit un moyen pour lever une exception. Par exemple, il est utile lever une exception lorsque vous effectuez la validation des données à l'intérieur d'une procédure Property Set , car vous souhaiterez peut-être lever une erreur si une règle d'entreprise est violée.
  1. Démarrez Visual Studio.NET ou Visual Studio 2005.
  2. Créer un nouveau projet Application Console dans Visual Basic.NET ou Visual Basic 2005.
  3. Dans le menu projet , cliquez sur Ajouter une classe.
  4. Dans la fenêtre Ajouter un nouvel élément , tapez clsPerson.vb dans le texte du nom de zone, puis cliquez sur OK.
  5. Ajoutez le code suivant à l'intérieur de la clsPerson Public Class...End Class instructions :
    Private mintAge As IntegerPublic Property Age() As Integer  Get    Age = mintAge  End Get  Set(ByVal Value As Integer)    If Value >= 0 Then      mintAge = Value    Else      Throw New ArgumentException ("Age cannot be negative")    End If  End SetEnd Property						
    Ce code crée une propriété Age . Parce qu'une personne ne peut pas avoir une durée de vie négative, une erreur est déclenchée si l'utilisateur de la classe tente de définir la durée de vie d'un nombre qui est inférieur à zéro.
  6. Dans la procédure Sub Main Module1.vb, ajoutez le code suivant :
    Dim p As New clsPerson()Try  p.Age = -1Catch exc As Exception  Console.WriteLine(exc.Message)Finally  Console.ReadLine()End Try					
  7. Dans le menu Déboguer , cliquez sur Démarrer pour exécuter l'application. La fenêtre de Console affiche le message d'erreur suivant :
    Age cannot be negative						
  8. Fermez la fenêtre de Console.
back to the top

Listing complet du Code

Intercepter une Exception

Module Module1  Sub Main()    Dim a As Integer = 0    Dim b As Integer = 0    Dim c As Integer = 0    Try      a = b \ c    Catch exc As Exception      Console.WriteLine("A run-time error occurred")    Finally      Console.ReadLine()    End Try  End SubEnd Module				
back to the top

Intercepter plusieurs Exceptions

Module Module1  Sub Main()    Dim a As Integer = 2147483647    Dim b As Integer = 0    Dim c As Integer = 0    Try      a += 1    Catch exc As DivideByZeroException      Console.WriteLine("Error: Divide by zero")    Catch exc As OverflowException      Console.WriteLine("Error: Overflow")    Catch exc As Exception      Console.WriteLine("Error: " & exc.Message)    Finally      Console.ReadLine()    End Try  End SubEnd Module				
back to the top

Lever une Exception

Module Module1  Sub Main()    Dim p As New clsPerson()    Try      p.Age = -1    Catch exc As Exception      Console.WriteLine(exc.Message)    Finally      Console.ReadLine()    End Try  End SubEnd ModulePublic Class clsPerson  Private mintAge As Integer  Public Property Age() As Integer    Get      Age = mintAge    End Get    Set(ByVal Value As Integer)      If Value >= 0 Then        mintAge = Value      Else        Throw New ApplicationException("Age cannot be negative")      End If    End Set  End PropertyEnd Class				
back to the top

RÉFÉRENCES

Pour plus d'informations, reportez-vous aux sites Web Microsoft suivants :
Erreur de manipulation du langage VB.NET moyen : Vivant avec Exceptions (un article de Développeur Visual Basic )
http://msdn.Microsoft.com/en-us/library/aa227603 (v=vs.60) .aspx

Comment pour intercepter une Exception
http://msdn.Microsoft.com/en-us/library/ys1b32h3 (v=vs.80) .aspx

Comment pour lever une Exception
http://msdn.Microsoft.com/en-us/library/z7w9ff54 (v=vs.80) .aspx

back to the top

Avertissement : cet article a été traduit automatiquement

Propriétés

ID d'article : 315965 - Dernière mise à jour : 06/15/2012 08:24:00 - Révision : 2.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Initiation, Microsoft Visual Basic .NET 2002 Initiation

  • kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315965 KbMtfr
Commentaires
>