Dela via


Konfigurera varningar i Visual Basic

Visual Basic-kompilatorn innehåller en uppsättning varningar om kod som kan orsaka körningsfel. Du kan använda den informationen för att skriva renare, snabbare och bättre kod med färre buggar. Kompilatorn skapar till exempel en varning när användaren försöker anropa en medlem i en otilldelad objektvariabel, returnerar från en funktion utan att ange returvärdet eller kör ett Try block med fel i logiken för att fånga undantag.

Ibland tillhandahåller kompilatorn extra logik för användarens räkning så att användaren kan fokusera på den aktuella uppgiften i stället för att förutse möjliga fel. I tidigare versioner av Visual Basic användes Alternativet Strikt för att begränsa den ytterligare logik som Visual Basic-kompilatorn tillhandahåller. Genom att konfigurera varningar kan du begränsa den här logiken på ett mer detaljerat sätt, på nivån för de enskilda varningarna.

Du kanske vill anpassa projektet och inaktivera vissa varningar som inte är relevanta för ditt program samtidigt som du omvandlar andra varningar till fel. Den här sidan förklarar hur du aktiverar och inaktiverar enskilda varningar.

Slå av och på varningar

Det finns flera olika sätt att konfigurera varningar: du kan konfigurera dem med hjälp av Project Designer, du kan använda /warnaserror och /nowarn kompilatoralternativ, eller så kan du redigera projektfilen (vbproj fil) och använda egenskapen NoWarn MSBuild. Information om hur du använder egenskapen MSBuild finns i Utelämna specifika varningar för ett helt Visual Basic-projekt.

Erfarenheten av projektplaneraren skiljer sig beroende på om du arbetar med antingen ett .NET Framework-projekt eller ett .NET Core-projekt (eller ett .NET 5-projekt eller senare).

I .NET Core-projekt (eller .NET 5 och senare) innehåller avsnittet Compile i Project Designer en inställning med namnet Varnings allvarlighetsgrad som du kan använda för att inaktivera alla varningar, höja upp alla varningar till fel eller välja att styra varje varningskategori separat (standardvärdet). Inställningarna för varningskategori visas i samma område i Project Designer.

I .NET Framework-projekt går du till fliken Kompilera i Project Designeroch markerar kryssrutan Inaktivera alla varningar för att inaktivera alla varningar. välj Behandla alla varningar som fel för att behandla alla varningar som fel. Vissa enskilda varningar kan växlas mellan fel och varning, som önskat, i den visade tabellen.

På fliken Kompilera på sidan Project Designer kan du aktivera och inaktivera varningar. Markera kryssrutan Inaktivera alla varningar för att inaktivera alla varningar. välj Behandla alla varningar som fel för att behandla alla varningar som fel. Vissa enskilda varningar kan växlas till fel eller till varning enligt önskemål i tabellen som visas.

När Option Strict är inställt på Avkan varningar som relaterar till Option Strict inte behandlas oberoende av varandra. När Alternativ Strikt är inställt på behandlas de associerade varningarna som fel, oavsett deras status. När Alternativet Strikt är inställt på Anpassad genom att ange /optionstrict:custom i kommandoradskompilatorn kan Alternativet Strikt varningar aktiveras eller inaktiveras separat.

Kommandoradsalternativet /warnaserror kan också användas för att ange om varningar ska behandlas som fel. Du kan lägga till en kommaavgränsad lista i det här alternativet för att ange vilka varningar som ska behandlas som fel eller varningar med hjälp av + eller -. I följande tabell beskrivs möjliga alternativ.

Kommandoradsalternativ Anger
/warnaserror+ eller /warnaserror Behandla alla varningar som fel
/warnsaserror- Behandla inte varningar som fel. Den här inställningen är standardinställningen.
/warnaserror+:<warning list > Behandla specifika varningar som fel, som anges av deras fel-ID-nummer i en kommaavgränsad lista r.
/warnaserror-:<warning list> Behandla inte specifika varningar som fel, som anges av deras fel-ID-nummer i en kommaavgränsad lista.
/nowarn Rapportera inte varningar.
/nowarn:<warning list> Rapportera inte specifika varningar vars fel-ID-nummer är listade i en kommaavgränsad lista.

Varningslistan innehåller fel-ID-nummer för de varningar som ska behandlas som fel, som kan användas med kommandoradsalternativen för att aktivera eller inaktivera specifika varningar. Om varningslistan innehåller ett ogiltigt nummer rapporteras ett fel.

Exempel

Den här tabellen med exempel på kommandoradsargument beskriver vad varje argument gör.

Argument Beskrivning
vbc /warnaserror Anger att alla varningar ska behandlas som fel.
vbc /warnaserror:42024 Anger att varning 42024 ska behandlas som ett fel.
vbc /warnaserror:42024,42025 Anger att varningar 42024 och 42025 ska behandlas som fel.
vbc /nowarn Anger att inga varningar ska rapporteras.
vbc /nowarn:42024 Anger att varning 42024 inte ska rapporteras.
vbc /nowarn:42024,42025 Anger att varningar 42024 och 42025 inte ska rapporteras.

Typer av varningar

Följande är en lista över varningar som du kanske vill hantera som fel.

Implicit konverteringsvarning

Genereras för instanser av implicit konvertering. De inkluderar inte implicita konverteringar från en inbyggd numerisk typ till en sträng när du använder operatorn &. Standardvärdet för nya projekt är inaktiverat.

ID: 42016

Varning om metodanrop med sen bunden bindning och överbelastningsmatchning

Genereras för instanser av sen bindning. Standardvärdet för nya projekt är inaktiverat.

ID: 42017

Operander av typen "Objekt"-varningar

Genereras när operander av typen Object inträffar som skulle skapa ett fel med Alternativet Strikt på. Standardläget för nya projekt är på.

ID: 42018 och 42019

Deklarationer kräver varningar för 'As'-satser

Genereras när en variabel-, funktions- eller egenskapsdeklaration som saknar en As-sats skulle ha skapat ett fel med Option Strict On. Variabler som inte har någon tilldelad typ antas vara av typen Object. Standardinställningen för nya projekt är på.

ID: 42020 (variabeldeklaration), 42021 (funktionsdeklaration) och 42022 (egenskapsdeklaration).

Möjliga null-referensfelvarningar

Genereras när en variabel används innan den har tilldelats ett värde. Standardvärdet för nya projekt är aktiverat.

ID: 42104, 42030

Varning om oanvänd lokal variabel

Genereras när en lokal variabel deklareras men aldrig refereras till. Standardinställningen är på.

ID: 42024

Åtkomst till delad medlem via varning om instansvariabler

Genereras när åtkomst till en delad medlem via en instans kan medföra biverkningar, eller när åtkomst till en delad medlem via en instansvariabel inte står på högra sidan av ett uttryck eller används som en parameter. Standardvärdet för nya projekt är aktiverat.

ID: 42025

Rekursiva operator- eller egenskapsåtkomstvarningar

Genereras när brödtexten i en rutin använder samma operator eller egenskap som den definieras i. Standardinställningen för nya projekt är på.

ID: 42004 (operator), 42026 (egenskap)

Varning om funktion eller operator utan returvärde

Genereras när funktionen eller operatorn inte har något angivet returvärde. Detta inkluderar att utelämna en Set till den implicita lokala variabeln med samma namn som funktionen. Standardvärdet för nya projekt är aktiverat.

ID: 42105 (funktion), 42016 (operator)

Överlagrar modifierare som används i en modulvarning

Genereras när Overloads används i en Module. Standardinställningen för nya projekt är på.

ID: 42028

Varningar om duplicerade eller överlappande fångstblock

Genereras när ett Catch block aldrig nås på grund av dess relation till andra Catch block som har definierats. Standardinställningen för nya projekt är på.

ID: 42029, 42031