Konfigurace upozornění v jazyce Visual Basic

Kompilátor jazyka Visual Basic obsahuje sadu upozornění na kód, který může způsobit chyby za běhu. Tyto informace můžete použít k psaní čistějších, rychlejších a lepších kódů s menším počtem chyb. Kompilátor například vygeneruje upozornění, když se uživatel pokusí vyvolat člena nepřiřazené proměnné objektu, vrátí se z funkce bez nastavení návratové hodnoty nebo spustí Try blok s chybami v logice za účelem zachycení výjimek.

Kompilátor někdy poskytuje za uživatele další logiku, aby se uživatel mohl soustředit na daný úkol, a ne na očekávání možných chyb. V předchozích verzích jazyka Visual Basic byla použita možnost Strict k omezení další logiky, kterou poskytuje kompilátor jazyka Visual Basic. Konfigurace upozornění umožňuje omezit tuto logiku podrobnějším způsobem na úrovni jednotlivých upozornění.

Možná budete chtít projekt přizpůsobit a vypnout některá upozornění, která nejsou pro vaši aplikaci relevantní, a zároveň změnit další upozornění na chyby. Tato stránka vysvětluje, jak zapnout a vypnout jednotlivá upozornění.

Vypnutí a zapnutí upozornění

Existují dva různé způsoby konfigurace upozornění: můžete je nakonfigurovat pomocí Návrháře projektu nebo můžete použít možnosti kompilátoru /warnaserror a /nowarn .

Karta Kompilace na stránce Návrhář projektu umožňuje zapnout a vypnout upozornění. Chcete-li zakázat všechna upozornění, zaškrtněte políčko Zakázat všechna upozornění. Chcete-li zacházet se všemi upozorněními jako s chybami, zaškrtněte políčko Považovat všechna upozornění za chyby. Některá jednotlivá upozornění se dají přepnout jako chyba nebo upozornění podle potřeby v zobrazené tabulce.

Je-li možnost Strict nastavena na vypnuto, možnost Striktní upozornění nelze považovat nezávisle na sobě navzájem. Pokud je možnost Strict nastavena na Zapnuto, související upozornění se považují za chyby bez ohledu na jejich stav. Pokud je možnost Strict nastavena na vlastní zadáním /optionstrict:custom v kompilátoru příkazového řádku, lze upozornění Na striktní možnosti zapnout nebo vypnout nezávisle.

Možnost příkazového řádku /warnaserror kompilátoru lze také použít k určení, zda jsou upozornění považována za chyby. K této možnosti můžete přidat čárkami oddělený seznam a určit, která upozornění se mají považovat za chyby nebo upozornění pomocí + nebo -. Následující tabulka obsahuje podrobnosti o možných možnostech.

Možnost příkazového řádku Určuje
/warnaserror+ Považovat všechna upozornění za chyby
/warnsaserror- Nezacházejte s upozorněními jako s chybami. Tato možnost je výchozí.
/warnaserror+:<warning list > Zacházejte s konkrétními upozorněními jako s chybami, které jsou uvedené podle čísla ID chyby v seznamu s oddělovači r.
/warnaserror-:<warning list> Nezacházejte s konkrétními upozorněními jako s chybami uvedenými podle čísla ID chyby v seznamu oddělených čárkami.
/nowarn Neohlašujte upozornění.
/nowarn:<warning list> Neoznamujte zadaná upozornění uvedená podle čísla ID chyby v seznamu oddělených čárkami.

Seznam upozornění obsahuje čísla ID chyb upozornění, která by se měla považovat za chyby, které lze použít s možnostmi příkazového řádku k zapnutí nebo vypnutí konkrétních upozornění. Pokud seznam upozornění obsahuje neplatné číslo, zobrazí se chyba.

Příklady

Tato tabulka příkladů argumentů příkazového řádku popisuje, co každý argument dělá.

Argument Popis
vbc /warnaserror Určuje, že všechna upozornění mají být považována za chyby.
vbc /warnaserror:42024 Určuje, že upozornění 42024 by mělo být považováno za chybu.
vbc /warnaserror:42024,42025 Určuje, že upozornění 42024 a 42025 by se měla považovat za chyby.
vbc /nowarn Určuje, že se žádná upozornění nemají hlásit.
vbc /nowarn:42024 Určuje, že upozornění 42024 by nemělo být hlášeno.
vbc /nowarn:42024,42025 Určuje, že upozornění 42024 a 42025 by neměla být hlášena.

Typy upozornění

Následuje seznamupozorněních

Upozornění na implicitní převod

Generuje se pro instance implicitního převodu. Nezahrnují implicitní převody z vnitřního číselného typu na řetězec při použití operátoru & . Výchozí nastavení pro nové projekty je vypnuté.

ID: 42016

Upozornění na vyvolání metody s pozdní vazbou a rozlišení přetížení

Vygenerováno pro instance pozdní vazby. Výchozí nastavení pro nové projekty je vypnuté.

ID: 42017

Operandy typu "Object" upozornění

Generuje se, když dojde k operandům typu Object , které by vytvořily chybu s parametrem Strict On. Výchozí nastavení pro nové projekty je zapnuté.

ID: 42018 a 42019

Deklarace vyžadují upozornění klauzule As.

Vygenerováno v případě, že proměnná, funkce nebo deklarace vlastnosti, u které As chybí klauzule, by se vytvořila chyba s parametrem Strict On. Proměnné, které nemají přiřazený typ, se předpokládají jako typ Object. Výchozí nastavení pro nové projekty je zapnuté.

ID: 42020 (deklarace proměnné), 42021 (deklarace funkce) a 42022 (deklarace vlastnosti).

Možná upozornění na výjimku s nulovým odkazem

Vygenerováno, když se proměnná použije dříve, než byla přiřazena hodnota. Výchozí nastavení pro nové projekty je zapnuté.

ID: 42104, 42030

Upozornění na nepoužívané místní proměnné

Vygenerováno, když je místní proměnná deklarována, ale nikdy se neodhlásí. Výchozí hodnota je zapnutá.

ID: 42024

Přístup sdíleného člena prostřednictvím upozornění proměnné instance

Vygenerováno při přístupu ke sdílenému členu prostřednictvím instance může mít vedlejší účinky nebo při přístupu ke sdílenému členu prostřednictvím proměnné instance není pravá strana výrazu nebo se předává jako parametr. Výchozí nastavení pro nové projekty je zapnuté.

ID: 42025

Upozornění rekurzivního operátoru nebo přístupu k vlastnostem

Generuje se, když tělo rutiny používá stejný operátor nebo vlastnost, ve které je definován. Výchozí nastavení pro nové projekty je zapnuté.

ID: 42004 (operátor), 42026 (vlastnost)

Funkce nebo operátor bez upozornění na návratové hodnoty

Generuje se, když funkce nebo operátor nemá zadanou návratovou hodnotu. To zahrnuje vynechání Set implicitní místní proměnné se stejným názvem jako funkce. Výchozí nastavení pro nové projekty je zapnuté.

ID: 42105 (funkce), 42016 (operátor)

Modifikátor přetížení použitý v upozornění modulu

Vygenerováno při Overloads použití v .Module Výchozí nastavení pro nové projekty je zapnuté.

ID: 42028

Duplicitní nebo překrývající se bloky catch – upozornění

Generuje se, když Catch se blok nikdy nedosáhl kvůli jeho vztahu k jiným Catch blokům, které byly definovány. Výchozí nastavení pro nové projekty je zapnuté.

ID: 42029, 42031