Freigeben über


Konfigurieren von Warnungen in Visual Basic

Der Visual Basic-Compiler bietet eine Reihe von Warnungen zu Code, bei dem möglicherweise Laufzeitfehler verursacht werden.Mithilfe dieser Informationen können Sie saubereren, schnelleren und besseren Code mit weniger Fehlern schreiben.So gibt der Compiler z. B. eine Warnung aus, wenn der Benutzer versucht, einen Member einer nicht zugewiesenen Objektvariablen aufzurufen, eine Funktion ohne Angabe eines Rückgabewerts zu beenden oder einen Try-Block auszuführen, der Programmfehler im Code für das Abfangen von Ausnahmen enthält.

In einigen Fällen stellt der Compiler auch zusätzliche Funktionen bereit, die es dem Benutzer ermöglichen, sich auf die konkrete Aufgabe zu konzentrieren, statt sich um möglicherweise auftretende Fehler zu kümmern.In früheren Versionen von Visual Basic wurde Option Strict verwendet, um die zusätzlichen Funktionen einzuschränken, die der Visual Basic-Compiler bietet.Durch die Konfiguration von Warnungen können Sie diese Funktionalität wesentlich detaillierter kontrollieren.

So können Sie Projekte an Ihre Anforderungen anpassen und einzelne Warnungen deaktivieren, die für Ihr Projekt nicht relevant sind, oder bestimmte Warnungen in Fehlermeldungen umwandeln.Auf dieser Seite wird das Aktivieren und Deaktivieren einzelner Warnungen erläutert.

Aktivieren und Deaktivieren von Warnungen

Sie können Warnungen auf zwei Arten konfigurieren: mit dem Projekt-Designer oder mit den Compileroptionen /warnaserror und /nowarn.

Im Projekt-Designer können Sie Warnungen auf der Registerkarte Kompilieren aktivieren und deaktivieren.Wenn Sie alle Warnungen deaktivieren möchten, aktivieren Sie das Kontrollkästchen Alle Warnungen deaktivieren. Wenn alle Warnungen als Fehler behandelt werden sollen, aktivieren Sie das Kontrollkästchen Alle Warnungen als Fehler behandeln.Einige Warnungen können in der angezeigten Tabelle je nach Bedarf als Fehler oder Warnungen konfiguriert werden.

Wenn Option Strict auf Off festgelegt ist, können Warnungen im Zusammenhang mit Option Strict nicht unabhängig voneinander behandelt werden.Wenn Option Strict auf On festgelegt ist, werden die zugeordneten Warnungen unabhängig von deren Status als Fehler behandelt.Wenn Option Strict durch Angabe von /optionstrict:custom im Befehlszeilencompiler auf Custom festgelegt ist, können Option Strict-Warnungen unabhängig voneinander aktiviert bzw. deaktiviert werden.

Mithilfe der Befehlszeilenoption /warnaserror des Compilers kann ebenfalls festgelegt werden, ob Warnungen als Fehler behandelt werden.Sie können bei dieser Option mit den Zeichen + bzw. - in einer durch Trennzeichen getrennten Liste angeben, welche Warnungen als Fehler behandelt werden sollen.In der folgenden Tabelle werden die möglichen Optionen aufgeführt.

Befehlszeilenoption

Bedeutung

/warnaserror+

Alle Warnungen als Fehler behandeln

/warnsaserror-

Warnungen nicht als Fehler behandeln.Dies ist die Standardeinstellung.

/warnaserror+:<warning list>

Bestimmte Warnungen, die mit ihrer Fehler-ID in einer durch Trennzeichen getrennten Liste angegeben werden, als Fehler behandeln

/warnaserror-:<warning list>

Bestimmte Warnungen, die mit ihrer Fehler-ID in einer durch Trennzeichen getrennten Liste angegeben werden, nicht als Fehler behandeln

/nowarn

Keine Warnungen ausgeben

/nowarn:<warning list>

Bestimmte Warnungen, die mit ihrer Fehler-ID in einer durch Trennzeichen getrennten Liste angegeben werden, nicht ausgeben

Die Liste mit Warnungen enthält die Fehler-IDs der Warnungen, die als Fehler behandelt werden sollen. Auf diese Weise können bestimmte Warnungen mithilfe von Befehlszeilenoptionen aktiviert bzw. deaktiviert werden.Wenn die Liste der Warnungen eine ungültige ID enthält, wird ein Fehler ausgegeben.

Beispiele

In diese Tabelle mit Beispielen für Befehlszeilenargumente wird die Bedeutung der einzelnen Argumente beschrieben.

Argument

Beschreibung

vbc /warnaserror

Gibt an, dass alle Warnungen als Fehler behandelt werden sollen.

vbc /warnaserror:42024

Gibt an, dass die Warnung 42024 als Fehler behandelt werden soll.

vbc /warnaserror:42024,42025

Gibt an, dass die Warnungen 42024 und 42025 als Fehler behandelt werden sollen.

vbc /nowarn

Gibt an, dass keine Warnungen ausgegeben werden sollen.

vbc /nowarn:42024

Gibt an, dass die Warnung 42024 nicht ausgegeben werden soll.

vbc /nowarn:42024,42025

Gibt an, dass die Warnungen 42024 und 42025 nicht ausgegeben werden sollen.

Arten von Warnungen

Im Folgenden wird eine Liste von Warnungen aufgeführt, die als Fehler behandelt werden können.

Implizite Konvertierung

Wird bei impliziten Konvertierungen generiert.Hierzu zählen keine impliziten Konvertierungen aus einem systeminternen numerischen Typ in eine Zeichenfolge bei Verwendung des Operators &.Standardmäßig für neue Projekte deaktiviert.

ID: 42016

Aufruf spät gebundener Methoden und Überladungsauflösung

Wird bei später Bindung generiert.Standardmäßig für neue Projekte deaktiviert.

ID: 42017

Operanden vom Typ Objekt

Wird generiert, wenn Operanden vom Typ Object vorkommen, die bei Verwendung von Option Strict On einen Fehler verursachen würden.Standardmäßig für neue Projekte aktiviert.

ID: 42018 und 42019

Für Deklarationen ist eine 'As'-Klausel erforderlich

Wird generiert, wenn eine Variablen-, Funktions- oder Eigenschaftendeklaration ohne As-Klausel bei Verwendung von Option Strict On einen Fehler verursachen würde.Bei Variablen, denen keinen Typ zugeordnet ist, wird davon ausgegangen, dass diese vom Typ Object sind.Standardmäßig für neue Projekte aktiviert.

ID: 42020 (Variablendeklaration), 42021 (Funktionsdeklaration) und 42022 (Eigenschaftendeklaration).

Ausnahme bei möglichem NULL-Verweis

Wird generiert, wenn eine Variable verwendet wird, bevor dieser ein Wert zugewiesen wurde.Standardmäßig für neue Projekte aktiviert.

ID: 42104, 42030

Nicht verwendete lokale Variable

Wird generiert, wenn eine lokale Variable deklariert, aber nie auf diese verwiesen wird.Standardmäßig aktiviert.

ID: 42024

Zugriff auf freigegebenen Member durch Instanzvariable

Wird generiert, wenn beim Zugriff auf einen freigegebenen Member durch eine Instanz Nebeneffekte auftreten könnten oder wenn der Zugriff auf einen freigegebenen Member durch eine Instanzvariable nicht auf der rechten Seite eines Ausdrucks erfolgt oder als Parameter übergeben wird.Standardmäßig für neue Projekte aktiviert.

ID: 42025

Rekursiver Zugriff auf Operator oder Eigenschaft

Wird generiert, wenn im Rumpf einer Routine derselbe Operator oder dieselbe Eigenschaft verwendet wird, in dem oder der die Routine definiert ist.Standardmäßig für neue Projekte aktiviert.

ID: 42004 (Operator), 42026 (Eigenschaft)

Funktion oder Operator ohne Rückgabewert

Wird generiert, wenn für eine Funktion oder einen Operator kein Rückgabewert angegeben wurde.Dazu zählt auch das Auslassen von Set für die implizite lokale Variable, die denselben Namen wie die Funktion hat.Standardmäßig für neue Projekte aktiviert.

ID: 42105 (Funktion), 42016 (Operator)

Verwendung eines Overloads-Modifizierers in einem Modul

Wird generiert, wenn Overloads in einem Module verwendet wird.Standardmäßig für neue Projekte aktiviert.

ID: 42028

Mehrfach vorkommende oder überlappende catch-Blöcke

Wird generiert, wenn ein Catch-Block durch dessen Beziehung zu anderen definierten Catch-Blöcken nie erreicht wird.Standardmäßig für neue Projekte aktiviert.

ID: 42029, 42031

Siehe auch

Referenz

Dialogfeld "Ausnahmen-Assistent"

Try...Catch...Finally-Anweisung (Visual Basic)

/nowarn

/warnaserror (Visual Basic)

Seite "Kompilieren", Projekt-Designer (Visual Basic)

Standardmäßig deaktivierte Compilerwarnungen

Konzepte

Fehlertypen (Visual Basic)