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 Object
te 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