Delen via


Waarschuwingen configureren in Visual Basic

De Visual Basic-compiler bevat een reeks waarschuwingen over code die runtimefouten kunnen veroorzaken. U kunt deze informatie gebruiken om schonere, snellere en betere code te schrijven met minder bugs. De compiler genereert bijvoorbeeld een waarschuwing wanneer de gebruiker probeert een lid van een niet-toegewezen objectvariabele aan te roepen, terug te keren van een functie zonder de retourwaarde in te stellen of een Try blok uit te voeren met fouten in de logica om uitzonderingen te ondervangen.

Soms biedt de compiler extra logica namens de gebruiker, zodat de gebruiker zich kan richten op de taak in plaats van op mogelijke fouten te anticiperen. In eerdere versies van Visual Basic is Option Strict gebruikt om de extra logica te beperken die de Visual Basic-compiler biedt. Door waarschuwingen te configureren, kunt u deze logica op een gedetailleerdere manier beperken, op het niveau van de afzonderlijke waarschuwingen.

Mogelijk wilt u uw project aanpassen en bepaalde waarschuwingen uitschakelen die niet relevant zijn voor uw toepassing, terwijl u andere waarschuwingen in fouten zet. Op deze pagina wordt uitgelegd hoe u afzonderlijke waarschuwingen inschakelt en uitschakelt.

Waarschuwingen uitschakelen en inschakelen

Er zijn verschillende manieren om waarschuwingen te configureren: u kunt deze configureren met behulp van de Projectontwerper-, u kunt de /warnaserror- en /nowarn compileropties gebruiken, of u kunt het projectbestand (vbproj bestand) bewerken en de eigenschap NoWarn MSBuild gebruiken. Als u de eigenschap MSBuild wilt gebruiken, zie Specifieke waarschuwingen onderdrukken voor een volledig Visual Basic-project.

De projectontwerper ervaring verschilt, afhankelijk van of u werkt met een .NET Framework-project of een .NET Core-project (of .NET 5 of hoger).

In .NET Core-projecten (of .NET 5 en hoger) bevat de sectie Compile van de Projectontwerper een instelling met de naam Waarschuwing ernst die u kunt gebruiken om alle waarschuwingen uit te schakelen, alle waarschuwingen op fouten te promoten, of elke waarschuwingscategorie afzonderlijk te beheren (de standaardinstelling). De instellingen voor de waarschuwingscategorie zijn te vinden in hetzelfde gebied van de Project Designer.

Schakel in .NET Framework-projecten op het tabblad Compileren van de projectontwerperhet selectievakje Alle waarschuwingen uitschakelen in om alle waarschuwingen uit te schakelen; selecteer de Alle waarschuwingen behandelen als fouten om alle waarschuwingen als fouten te behandelen. Sommige individuele waarschuwingen kunnen naar wens als fout of als waarschuwing worden ingesteld in de weergegeven tabel.

Op het tabblad Compileer van de pagina Projectontwerper kunt u waarschuwingen in- en uitschakelen. Schakel het selectievakje Alle waarschuwingen uitschakelen in om alle waarschuwingen uit te schakelen; selecteer de Alle waarschuwingen behandelen als fouten om alle waarschuwingen als fouten te behandelen. Sommige afzonderlijke waarschuwingen kunnen naar wens worden ingesteld als fout of waarschuwing in de weergegeven tabel.

Wanneer Option Strict is ingesteld op Uit, kunnen Option Strict gerelateerde waarschuwingen niet onafhankelijk van elkaar worden behandeld. Wanneer Optie Strict is ingesteld op On, worden de bijbehorende waarschuwingen behandeld als fouten, ongeacht hun status. Wanneer Option Strict is ingesteld op Aangepast door /optionstrict:custom op te geven in de opdrachtregelcompilator, kunnen Option Strict waarschuwingen onafhankelijk worden in- of uitgeschakeld.

De /warnaserror opdrachtregeloptie van de compiler kan ook worden gebruikt om op te geven of waarschuwingen worden behandeld als fouten. U kunt een door komma's gescheiden lijst toevoegen aan deze optie om op te geven welke waarschuwingen moeten worden behandeld als fouten of waarschuwingen met behulp van + of -. In de volgende tabel worden de mogelijke opties beschreven.

Opdrachtregeloptie Specificeert
/warnaserror+ of /warnaserror Alle waarschuwingen behandelen als fouten
/warnsaserror- Behandel waarschuwingen niet als fouten. Deze instelling is de standaardinstelling.
/warnaserror+:<warning list > Specifieke waarschuwingen behandelen als fouten, vermeld door hun fout-id-nummer in een door komma's gescheiden lijst r.
/warnaserror-:<warning list> Behandel specifieke waarschuwingen niet als fouten, vermeld door hun fout-id-nummer in een door komma's gescheiden lijst.
/nowarn Meld geen waarschuwingen.
/nowarn:<warning list> Meld opgegeven waarschuwingen niet, vermeld door het bijbehorende fout-id-nummer in een door komma's gescheiden lijst.

De waarschuwingslijst bevat de fout-id-nummers van de waarschuwingen die moeten worden behandeld als fouten, die kunnen worden gebruikt met de opdrachtregelopties om specifieke waarschuwingen in of uit te schakelen. Als de waarschuwingslijst een ongeldig nummer bevat, wordt er een fout gerapporteerd.

Voorbeelden

In deze tabel met voorbeelden van opdrachtregelargumenten wordt beschreven wat elk argument doet.

Argument Beschrijving
vbc /warnaserror Hiermee geeft u op dat alle waarschuwingen moeten worden behandeld als fouten.
vbc /warnaserror:42024 Hiermee geeft u op dat waarschuwing 42024 moet worden behandeld als een fout.
vbc /warnaserror:42024,42025 Hiermee geeft u op dat waarschuwingen 42024 en 42025 moeten worden behandeld als fouten.
vbc /nowarn Hiermee geeft u op dat er geen waarschuwingen moeten worden gerapporteerd.
vbc /nowarn:42024 Hiermee geeft u op dat waarschuwing 42024 niet moet worden gerapporteerd.
vbc /nowarn:42024,42025 Hiermee geeft u op dat waarschuwingen 42024 en 42025 niet moeten worden gerapporteerd.

Typen waarschuwingen

Hieronder volgt een lijst met waarschuwingen die u mogelijk wilt behandelen als fouten.

Waarschuwing voor impliciete conversie

Gegenereerd voor gevallen van impliciete conversie. Ze bevatten geen impliciete conversies van een intrinsiek numeriek type naar een tekenreeks bij gebruik van de operator &. De standaardinstelling voor nieuwe projecten is uitgeschakeld.

Id: 42016

Waarschuwing voor laat gebonden methodeaanroep en overbelastingsresolutie

Gegenereerd voor instanties van late binding. De standaardinstelling voor nieuwe projecten is uitgeschakeld.

Id: 42017

Operanden van het type Objectwaarschuwingen

Gegenereerd wanneer operanden van het type Object optreden die een fout zouden veroorzaken met Optie strikt op. De standaardinstelling voor nieuwe projecten is ingeschakeld.

Id: 42018 en 42019

Declaraties vereisen waarschuwingen in geval van 'As'-clausules

Gegenereerd wanneer een variabele-, functie- of eigenschapsverklaring zonder een As component een fout zou hebben veroorzaakt met Option Strict On. Variabelen waaraan geen type is toegewezen, worden verondersteld Objectte zijn. De standaardinstelling voor nieuwe projecten is ingeschakeld.

Id: 42020 (variabeledeclaratie), 42021 (functiedeclaratie) en 42022 (declaratie van eigenschappen).

Mogelijke waarschuwingen voor null-referentie-excepties

Gegenereerd wanneer een variabele wordt gebruikt voordat deze een waarde is toegewezen. De standaardinstelling voor nieuwe projecten is ingeschakeld.

Id: 42104, 42030

Waarschuwing voor ongebruikte lokale variabelen

Gegenereerd wanneer een lokale variabele wordt gedeclareerd, maar nooit wordt gebruikt. De standaardwaarde is ingeschakeld.

Id: 42024

Toegang tot gedeeld lid via waarschuwing voor exemplaarvariabele

Gegenereerd wanneer een gedeeld lid via een instantie benaderd wordt dat kan neveneffecten hebben, of wanneer een gedeeld lid via een instantievariabele benaderd wordt dat niet aan de rechterkant van een expressie staat of wordt doorgegeven als parameter. De standaardinstelling voor nieuwe projecten is ingeschakeld.

Id: 42025

De recursieve operator- of eigenschapstoegangswaarschuwingen

Gegenereerd wanneer de hoofdtekst van een routine gebruikmaakt van dezelfde operator of eigenschap waarin deze is gedefinieerd. De standaardinstelling voor nieuwe projecten is ingeschakeld.

Id: 42004 (operator), 42026 (eigenschap)

Waarschuwing voor functie of operator zonder terugkeerwaarde

Gegenereerd wanneer de functie of operator geen retourwaarde heeft opgegeven. Dit omvat het weglaten van een Set uit de impliciete lokale variabele met dezelfde naam als de functie. De standaardinstelling voor nieuwe projecten is ingeschakeld.

Id: 42105 (functie), 42016 (operator)

Overbelastingsmodifier gebruikt in een modulewaarschuwing

Gegenereerd wanneer Overloads wordt gebruikt in een Module. De standaardinstelling voor nieuwe projecten is ingeschakeld.

Id: 42028

Waarschuwingen voor dubbele of overlappende catch blocks

Gegenereerd wanneer een Catch blok nooit wordt bereikt vanwege de relatie met andere Catch blokken die zijn gedefinieerd. De standaardinstelling voor nieuwe projecten is ingeschakeld.

Id: 42029, 42031