Configurer les avertissements en Visual BasicConfiguring warnings in Visual Basic

Le compilateur Visual BasicVisual Basic inclut un ensemble d’avertissements concernant le code qui peut provoquer des erreurs d’exécution.The Visual BasicVisual Basic compiler includes a set of warnings about code that may cause run-time errors. Vous pouvez utiliser ces informations pour écrire du code plus clair, plus rapide, de meilleure qualité et avec moins de bogues.You can use that information to write cleaner, faster, better code with fewer bugs. Par exemple, le compilateur génère un avertissement si l’utilisateur tente d’appeler un membre d’une variable objet non assignée, de retourner une valeur à partir d’une fonction sans définir la valeur de retour, ou d’exécuter un bloc Try contenant des erreurs dans la logique d’interception des exceptions.For example, the compiler will produce a warning when the user attempts to invoke a member of an unassigned object variable, return from a function without setting the return value, or execute a Try block with errors in the logic to catch exceptions.

Parfois, le compilateur fournit une logique supplémentaire à la place de l’utilisateur pour que celui-ci puisse se concentrer sur la tâche en cours, plutôt que sur l’anticipation d’éventuelles erreurs.Sometimes the compiler provides extra logic on the user's behalf so that the user can focus on the task at hand, rather than on anticipating possible errors. Dans les versions précédentes de Visual BasicVisual Basic, Option Strict était utilisé pour limiter la logique supplémentaire fournie par le compilateur Visual BasicVisual Basic.In previous versions of Visual BasicVisual Basic, Option Strict was used to limit the additional logic that the Visual BasicVisual Basic compiler provides. Vous pouvez choisir de limiter cette logique pour chacun des avertissements.Configuring warnings allows you to limit this logic in a more granular way, at the level of the individual warnings.

Il est possible que vous souhaitiez personnaliser votre projet en désactivant certains avertissements non pertinents pour votre application et en transformant certains avertissements en erreurs.You may want to customize your project and turn off some warnings not pertinent to your application while turning other warnings into errors. Cette page explique comment activer et désactiver chaque avertissement.This page explains how to turn individual warnings on and off.

Activer et désactiver les avertissementsTurning warnings off and on

Il existe deux façons de configurer les avertissements : vous pouvez utiliser le Concepteur de projet, ou vous pouvez utiliser les options /warnaserror et /nowarn du compilateur.There are two different ways to configure warnings: you can configure them using the Project Designer, or you can use the /warnaserror and /nowarn compiler options.

L’onglet Compiler de la page Concepteur de projet permet d’activer et de désactiver les avertissements.The Compile tab of the Project Designer page allows you to turn warnings on and off. Cochez la case Désactiver tous les avertissements pour désactiver tous les avertissements. Cochez la case Considérer tous les avertissements comme des erreurs pour traiter tous les avertissements comme des erreurs.Select the Disable All Warnings check box to disable all warnings; select the Treat All Warnings as Errors to treat all warnings as errors. Vous pouvez attribuer le statut d’erreur à certains avertissements (et inversement) dans le tableau affiché.Some individual warnings can be toggled as error or warning as desired in the displayed table.

Si Option Strict est Off, les avertissements relatifs à Option Strict ne peuvent pas être traités indépendamment les uns des autres.When Option Strict is set to Off, Option Strict related warnings cannot be treated independently of each other. Si Option Strict est On, les avertissements qui lui sont associés sont traités comme des erreurs, quel que soit leur état.When Option Strict is set to On, the associated warnings are treated as errors, no matter what their status is. Si Option Strict est défini sur Custom en spécifiant /optionstrict:custom dans le compilateur de ligne de commande, les avertissements Option Strict peuvent être activés ou désactivés indépendamment les uns des autres.When Option Strict is set to Custom by specifying /optionstrict:custom in the command line compiler, Option Strict warnings can be toggled on or off independently.

L’option de ligne de commande /warnaserror du compilateur peut également être utilisée pour spécifier si les avertissements doivent être traités comme des erreurs.The /warnaserror command-line option of the compiler can also be used to specify whether warnings are treated as errors. Vous pouvez ajouter une liste séparée par des virgules à cette option pour spécifier que les avertissements doivent être traités comme des erreurs ou des avertissements à l’aide des touches + et -.You can add a comma delimited list to this option to specify which warnings should be treated as errors or warnings by using + or -. Le tableau suivant présente les options possibles.The following table details the possible options.

Option de ligne de commandeCommand-line option Informations fourniesSpecifies
/warnaserror+ Considérer tous les avertissements comme des erreursTreat all warnings as errors
/warnsaserror- Ne considère pas les avertissements comme des erreurs.Do not treat as warnings as errors. Il s'agit de la valeur par défaut.This is the default.
/warnaserror+:<warning list >/warnaserror+:<warning list > Considère certains avertissements comme des erreurs. Ces avertissements sont répertoriés par numéro d’erreur dans une liste séparée par des virgules.Treat specific warnings as errors, listed by their error ID number in a comma delimited list r.
/warnaserror-:<warning list> Ne considère pas certains avertissements comme des erreurs. Ces avertissements sont répertoriés par numéro d’erreur dans une liste séparée par des virgules.Do not treat specific warnings as errors, listed by their error ID number in a comma delimited list.
/nowarn N’affiche pas d’avertissement.Do not report warnings.
/nowarn:<warning list> N’affiche pas certains avertissements. Ces avertissements sont répertoriés par numéro d’erreur dans une liste séparée par des virgules.Do not report specified warnings, listed by their error ID number in a comma delimited list.

La liste d’avertissements contient les ID d’erreur des avertissements qui doivent être traités comme des erreurs. Vous pouvez ainsi utiliser les options de ligne de commande pour activer ou désactiver certains avertissements.The warning list contains the error ID numbers of the warnings that should be treated as errors, which can be used with the command-line options to turn specific warnings on or off. Si la liste d’avertissements contient un numéro non valide, une erreur est signalée.If the warning list contains an invalid number, an error is reported.

ExemplesExamples

Ce tableau d’exemples d’arguments de ligne de commande décrit le rôle de chaque argument.This table of examples of command line arguments describes what each argument does.

ArgumentArgument DescriptionDescription
vbc /warnaserror Spécifie que tous les avertissements doivent être traités comme des erreurs.Specifies that all warnings should be treated as errors.
vbc /warnaserror:42024 Spécifie que l’avertissement 42024 doit être traité comme une erreur.Specifies that warning 42024 should be treated as an error.
vbc /warnaserror:42024,42025 Spécifie que les avertissements 42024 et 42025 doivent être traités comme des erreurs.Specifies that warnings 42024 and 42025 should be treated as errors.
vbc /nowarn Spécifie qu’aucun avertissement ne doit être signalé.Specifies that no warnings should be reported.
vbc /nowarn:42024 Spécifie que l’avertissement 42024 ne doit pas être signalé.Specifies that warning 42024 should not be reported.
vbc /nowarn:42024,42025 Spécifie que les avertissements 42024 et 42025 ne doivent pas être signalés.Specifies that warnings 42024 and 42025 should not be reported.

Types d’avertissementsTypes of warnings

Voici une liste d’avertissements que vous pouvez souhaiter traiter comme des erreurs.Following is a list of warnings that you might want to treat as errors.

Conversion impliciteImplicit conversion warning

Généré pour les instances de conversion implicite.Generated for instances of implicit conversion. Cela n’inclut pas les conversions implicites d’un type numérique intrinsèque en une chaîne à l’aide de l’opérateur &.They do not include implicit conversions from an intrinsic numeric type to a string when using the & operator. Pour les nouveaux projets, la valeur par défaut est Off (désactivé).Default for new projects is off.

ID : 42016ID: 42016

Appel de méthode à liaison tardive et résolution de surchargeLate bound method invocation and overload resolution warning

Généré pour les instances de liaison tardive.Generated for instances of late binding. Pour les nouveaux projets, la valeur par défaut est Off (désactivé).Default for new projects is off.

ID : 42017ID: 42017

Opérandes de type « Object »Operands of type 'Object' warnings

Généré en présence d’opérandes de type Object, susceptibles de créer une erreur avec Option Strict On.Generated when operands of type Object occur that would create an error with Option Strict On. Pour les nouveaux projets, la valeur par défaut est On (activé).Default for new projects is on.

ID : 42018 et 42019ID: 42018 and 42019

Les déclarations nécessitent une clause « As »Declarations require 'As' clause warnings

Généré lorsqu’une variable, une fonction ou une déclaration de propriété n’ayant pas de clause As provoquerait une erreur avec Option Strict On.Generated when a variable, function, or property declaration lacking an As clause would have created an error with Option Strict On. Les variables auxquelles aucun type n’est affecté sont supposées être de type Object.Variables that do not have a type assigned to them are assumed to be type Object. Pour les nouveaux projets, la valeur par défaut est On (activé).Default for new projects is on.

ID : 42020 (déclaration de variable), 42021 (déclaration de fonction) et 42022 (déclaration de propriété).ID: 42020 (variable declaration), 42021 (function declaration), and 42022 (property declaration).

Exception de référence Null potentiellePossible null reference exception warnings

Généré lorsqu’une variable est utilisée avant qu’une valeur ne lui ait été assignée.Generated when a variable is used before it has been assigned a value. Pour les nouveaux projets, la valeur par défaut est On (activé).Default for new projects is on.

ID : 42104, 42030ID: 42104, 42030

Variable locale non utiliséeUnused local variable warning

Généré lorsqu’une variable locale est déclarée, mais non référencée.Generated when a local variable is declared but never referred to. La valeur par défaut est On (activé).Default is on.

ID : 42024ID: 42024

Accès d’un membre partagé par le biais d’une variable d’instanceAccess of shared member through instance variable warning

Généré lorsque l’accès à un membre partagé via une instance peut avoir des effets secondaires, ou lorsque l’accès à un membre partagé via une variable d’instance n’est pas à droite d’une expression ou est passé comme un paramètre.Generated when accessing a shared member through an instance may have side effects, or when accessing a shared member through an instance variable is not the right-hand side of an expression or is being passed in as a parameter. Pour les nouveaux projets, la valeur par défaut est On (activé).Default for new projects is on.

ID : 42025ID: 42025

Accès récursif à un opérateur ou à une propriétéRecursive operator or property access warnings

Généré lorsque le corps d’une routine utilise le même opérateur ou la même propriété que celui ou celle où il est défini.Generated when the body of a routine uses the same operator or property it is defined in. Pour les nouveaux projets, la valeur par défaut est On (activé).Default for new projects is on.

ID : 42004 (opérateur), 42026 (propriété)ID: 42004 (operator), 42026 (property)

Fonction ou opérateur sans valeur de retourFunction or operator without return value warning

Généré lorsque la fonction ou l’opérateur n’a pas de valeur de retour.Generated when the function or operator does not have a return value specified. Cela inclut le fait d’omettre un Set dans la variable locale implicite portant le même nom que la fonction.This includes omitting a Set to the implicit local variable with the same name as the function. Pour les nouveaux projets, la valeur par défaut est On (activé).Default for new projects is on.

ID : 42105 (fonction), 42016 (opérateur)ID: 42105 (function), 42016 (operator)

Modificateur Overloads utilisé dans un moduleOverloads modifier used in a module warning

Généré lorsque Overloads est utilisé dans un Module.Generated when Overloads is used in a Module. Pour les nouveaux projets, la valeur par défaut est On (activé).Default for new projects is on.

ID : 42028ID: 42028

Blocs catch dupliqués ou se chevauchantDuplicate or overlapping catch blocks warnings

Généré lorsqu’un bloc Catch n’est jamais atteint en raison de sa relation aux autres blocs Catch qui ont été définis.Generated when a Catch block is never reached due to its relation to other Catch blocks that have been defined. Pour les nouveaux projets, la valeur par défaut est On (activé).Default for new projects is on.

ID : 42029, 42031ID: 42029, 42031

Voir aussiSee also

Types d’erreurs Error types
Instruction Try... Catch... Finally Try...Catch...Finally statement
/nowarn /nowarn
/warnaserror (Visual Basic) /warnaserror (Visual Basic)
Page Compiler, Concepteur de projet (Visual Basic) Compile page, Project Designer (Visual Basic)
Avertissements du compilateur désactivés par défautCompiler warnings that are off by default