Konfigurowanie ostrzeżeń w Visual Basic

Kompilator języka Visual Basic zawiera zestaw ostrzeżeń dotyczących kodu, które mogą powodować błędy czasu wykonywania. Możesz użyć tych informacji do pisania czystszego, szybszego i lepszego kodu z mniejszą liczbą usterek. Na przykład kompilator generuje ostrzeżenie, gdy użytkownik próbuje wywołać element członkowski nieprzypisanej zmiennej obiektu, powrócić z funkcji bez ustawiania wartości zwracanej lub wykonać Try blok z błędami w logice, aby przechwycić wyjątki.

Czasami kompilator udostępnia dodatkową logikę w imieniu użytkownika, dzięki czemu użytkownik może skupić się na zadaniu, a nie na przewidywaniu możliwych błędów. W poprzednich wersjach języka Visual Basic użyto opcji Strict, aby ograniczyć dodatkową logikę zapewnianą przez kompilator Języka Visual Basic. Konfigurowanie ostrzeżeń pozwala ograniczyć tę logikę w bardziej szczegółowy sposób na poziomie poszczególnych ostrzeżeń.

Możesz dostosować projekt i wyłączyć niektóre ostrzeżenia, które nie są istotne dla aplikacji, jednocześnie zamieniając inne ostrzeżenia w błędy. Na tej stronie wyjaśniono, jak włączać i wyłączać poszczególne ostrzeżenia.

Wyłączanie i wyłączanie ostrzeżeń

Istnieją dwa różne sposoby konfigurowania ostrzeżeń: można je skonfigurować przy użyciu programu Project Projektant lub użyć opcji /warnaserror i /nowarn kompilatora.

Karta Kompilowanie strony Project Projektant umożliwia włączanie i wyłączanie ostrzeżeń. Zaznacz pole wyboru Wyłącz wszystkie ostrzeżenia, aby wyłączyć wszystkie ostrzeżenia. Wybierz opcję Traktuj wszystkie ostrzeżenia jako błędy, aby traktować wszystkie ostrzeżenia jako błędy. Niektóre poszczególne ostrzeżenia mogą być przełączane jako błąd lub ostrzeżenie zgodnie z potrzebami w wyświetlonej tabeli.

Jeśli opcja Strict jest ustawiona na Wartość Wyłączone, nie można traktować niezależnie od siebie ostrzeżeń dotyczących opcji ściśle powiązanych. Gdy opcja Strict jest ustawiona na Włączone, skojarzone ostrzeżenia są traktowane jako błędy, niezależnie od ich stanu. Jeśli opcja Strict jest ustawiona na Wartość niestandardowa , określając /optionstrict:custom w kompilatorze wiersza polecenia, ostrzeżenia opcji Ścisłe można włączać lub wyłączać niezależnie.

/ warnaserror opcji wiersza polecenia kompilatora może również służyć do określenia, czy ostrzeżenia są traktowane jako błędy. Możesz dodać listę rozdzielaną przecinkami do tej opcji, aby określić, które ostrzeżenia powinny być traktowane jako błędy lub ostrzeżenia przy użyciu opcji + lub -. Poniższa tabela zawiera szczegółowe informacje o możliwych opcjach.

Opcja wiersza polecenia Określa
/warnaserror+ Traktuj wszystkie ostrzeżenia jako błędy
/warnsaserror- Nie traktuj jako ostrzeżeń jako błędów. Jest to opcja domyślna.
/warnaserror+:<warning list > Traktuj określone ostrzeżenia jako błędy wymienione według ich numeru identyfikatora błędu w rozdzielanej przecinkami liście r.
/warnaserror-:<warning list> Nie traktuj określonych ostrzeżeń jako błędów wymienionych według ich numeru identyfikatora błędu na liście rozdzielanej przecinkami.
/nowarn Nie zgłaszaj ostrzeżeń.
/nowarn:<warning list> Nie zgłaszaj określonych ostrzeżeń wymienionych według ich numeru identyfikatora błędu na liście rozdzielanej przecinkami.

Lista ostrzeżeń zawiera numery identyfikatorów błędów ostrzeżeń, które powinny być traktowane jako błędy, które mogą być używane z opcjami wiersza polecenia, aby włączyć lub wyłączyć określone ostrzeżenia. Jeśli lista ostrzeżeń zawiera nieprawidłową liczbę, zgłaszany jest błąd.

Przykłady

W tej tabeli przykładów argumentów wiersza polecenia opisano, co robi każdy argument.

Argument opis
vbc /warnaserror Określa, że wszystkie ostrzeżenia powinny być traktowane jako błędy.
vbc /warnaserror:42024 Określa, że ostrzeżenie 42024 powinno być traktowane jako błąd.
vbc /warnaserror:42024,42025 Określa, że ostrzeżenia 42024 i 42025 powinny być traktowane jako błędy.
vbc /nowarn Określa, że nie należy zgłaszać żadnych ostrzeżeń.
vbc /nowarn:42024 Określa, że ostrzeżenie 42024 nie powinno być zgłaszane.
vbc /nowarn:42024,42025 Określa, że nie powinny być zgłaszane ostrzeżenia 42024 i 42025.

Typy ostrzeżeń

Poniżej znajduje się lista ostrzeżeń, które mogą być traktowane jako błędy.

Ostrzeżenie o niejawnej konwersji

Generowane dla wystąpień niejawnej konwersji. Nie obejmują niejawnych konwersji z wewnętrznego typu liczbowego do ciągu podczas korzystania z & operatora. Wartość domyślna dla nowych projektów jest wyłączona.

Identyfikator: 42016

Ostrzeżenie o opóźnionej wywołaniu metody i przeciążeniu rozpoznawania

Generowane dla wystąpień opóźnionego powiązania. Wartość domyślna dla nowych projektów jest wyłączona.

Identyfikator: 42017

Operandy typu "Object" ostrzeżenia

Generowane, gdy wystąpią operandy typu Object , które spowodują wystąpienie błędu z opcją Strict On. Wartość domyślna dla nowych projektów jest włączona.

Identyfikator: 42018 i 42019

Deklaracje wymagają ostrzeżeń klauzuli "As"

Generowane, gdy zmienna, funkcja lub deklaracja właściwości bez As klauzuli spowodowałaby błąd z opcją Strict On. Przyjmuje się, że zmienne, które nie mają przypisanego Objecttypu. Wartość domyślna dla nowych projektów jest włączona.

IDENTYFIKATOR: 42020 (deklaracja zmiennej), 42021 (deklaracja funkcji) i 42022 (deklaracja właściwości).

Możliwe ostrzeżenia o wyjątku odwołania o wartości null

Generowane, gdy zmienna jest używana przed przypisaniem jej wartości. Wartość domyślna dla nowych projektów jest włączona.

Identyfikator: 42104, 42030

Ostrzeżenie o nieużywanej zmiennej lokalnej

Generowane, gdy zmienna lokalna jest zadeklarowana, ale nigdy nie jest do niej odwoływała się. Wartość domyślna jest włączona.

Identyfikator: 42024

Ostrzeżenie o dostępie współużytkowanego elementu członkowskiego za pośrednictwem zmiennej wystąpienia

Generowane podczas uzyskiwania dostępu do udostępnionego elementu członkowskiego za pośrednictwem wystąpienia może mieć skutki uboczne lub gdy uzyskiwanie dostępu do udostępnionego elementu członkowskiego za pośrednictwem zmiennej wystąpienia nie jest prawą stroną wyrażenia lub jest przekazywane jako parametr. Wartość domyślna dla nowych projektów jest włączona.

Identyfikator: 42025

Ostrzeżenia dotyczące cyklicznego operatora lub dostępu do właściwości

Generowane, gdy treść procedury używa tego samego operatora lub właściwości, w których jest ona zdefiniowana. Wartość domyślna dla nowych projektów jest włączona.

IDENTYFIKATOR: 42004 (operator), 42026 (właściwość)

Funkcja lub operator bez ostrzeżenia o wartości zwracanej

Generowane, gdy funkcja lub operator nie ma określonej wartości zwracanej. Obejmuje to pominięcie niejawnej Set zmiennej lokalnej o takiej samej nazwie jak funkcja. Wartość domyślna dla nowych projektów jest włączona.

Identyfikator: 42105 (funkcja), 42016 (operator)

Przeciąża modyfikator używany w ostrzeżeniu modułu

Generowany, gdy Overloads jest używany w obiekcie Module. Wartość domyślna dla nowych projektów jest włączona.

Identyfikator: 42028

Zduplikowane lub nakładające się ostrzeżenia dotyczące bloków catch

Generowane, gdy Catch blok nigdy nie zostanie osiągnięty ze względu na jego relację z innymi Catch blokami, które zostały zdefiniowane. Wartość domyślna dla nowych projektów jest włączona.

Identyfikator: 42029, 42031