Configurazione degli avvisi in Visual Basic
Il compilatore Visual Basic include un set di avvisi relativi al codice che può causare errori di runtime. È possibile usare tali informazioni per scrivere codice migliore, più semplice e rapido e con meno errori. Ad esempio il compilatore genera un avviso quando l'utente cerca di chiamare un membro di una variabile di oggetto non assegnata, di completare l'esecuzione di una funzione senza impostare il valore restituito o di eseguire un blocco Try
con errori nel codice per l'intercettazione delle eccezioni.
In alcuni casi il compilatore produce codice aggiuntivo per conto dell'utente, che potrà concentrarsi sul task corrente anziché sulla necessità di prevedere possibili errori. Nelle versioni precedenti di Visual Basic, Option Strict è stato usato per limitare la logica aggiuntiva fornita dal compilatore Visual Basic. La configurazione degli avvisi consente di limitare tale codice in modo più dettagliato, a livello dei singoli avvisi.
Può risultare utile personalizzare il progetto, disattivare gli avvisi non pertinenti all'applicazione e trasformare altri avvisi in errori. Questa pagina illustra come attivare e disattivare i singoli avvisi.
Attivare e disattivare gli avvisi
Esistono due modi per configurare gli avvisi: è possibile configurarli con Creazione progetti o mediante le opzioni del compilatore /warnaserror e /nowarn.
La scheda Compila della pagina Creazione progetti consente di attivare e disattivare gli avvisi. Selezionare la casella di controllo Disabilita tutti gli avvisi per disabilitare tutti gli avvisi. Selezionare Considera tutti gli avvisi come errori per considerare tutti gli avvisi come errori. Alcuni avvisi singoli possono essere impostati come errori o come avvisi in base alle esigenze nella tabella visualizzata.
Quando Option Strict è impostato su Off, gli avvisi associati a Option Strict non possono essere elaborati individualmente. Quando Option Strict è impostato su On, gli avvisi associati vengono considerati come errori, indipendentemente dal loro stato. Quando Option Strict è impostato su Custom specificando /optionstrict:custom
nel compilatore della riga di comando, gli avvisi Option Strict possono essere attivati o disattivati in modo indipendente.
L'opzione della riga di comando /warnaserror del compilatore consente anche di specificare se gli avvisi vengono considerati come errori. È possibile aggiungere un elenco delimitato da virgole a questa opzione per specificare mediante i segni + o - gli avvisi da considerare come errori o come avvisi. La seguente tabella elenca le opzioni possibili.
Opzione di riga di comando | Dettagli |
---|---|
/warnaserror+ |
Considera tutti gli avvisi come errori |
/warnsaserror - |
Non considera gli avvisi come errori. Si tratta dell'impostazione predefinita. |
/warnaserror+:<warning list > |
Considera come errori gli avvisi specifici elencati in base al numero ID dell'errore in un elenco delimitato da virgole. |
/warnaserror-:<warning list> |
Non considera come errori gli avvisi specifici elencati in base al numero ID dell'errore in un elenco delimitato da virgole. |
/nowarn |
Non segnala gli avvisi. |
/nowarn:<warning list> |
Non segnala gli avvisi specifici elencati in base al numero ID dell'errore in un elenco delimitato da virgole. |
L'elenco degli avvisi contiene i numeri ID errore degli avvisi da considerare come errori, usabili con le opzioni della riga di comando per attivare o disattivare avvisi specifici. Se l'elenco degli avvisi contiene un numero non valido, viene restituito un errore.
Esempi
Questa tabella di esempi di argomenti della riga di comando descrive la funzione di ogni argomento.
Argomento | Descrizione |
---|---|
vbc /warnaserror |
Specifica di considerare tutti gli avvisi come errori. |
vbc /warnaserror:42024 |
Specifica che l'avviso 42024 va considerato come errore. |
vbc /warnaserror:42024,42025 |
Specifica che gli avvisi 42024 e 42025 vanno considerati come errori. |
vbc /nowarn |
Specifica che non deve essere segnalato alcun avviso. |
vbc /nowarn:42024 |
Specifica che l'avviso 42024 non deve essere segnalato. |
vbc /nowarn:42024,42025 |
Specifica che gli avvisi 42024 e 42025 non devono essere segnalati. |
Tipi di avvisi
L'elenco che segue include avvisi che possono essere considerati come errori.
Avviso di conversione implicita
Viene generato per istanze di conversione implicita. Tali istanze non includono le conversioni implicite da un tipo numerico intrinseco a una stringa quando si usa l'operatore &
. L'impostazione predefinita per i nuovi progetti è Off (disattivato).
ID: 42016
Avviso di chiamata metodo di associazione tardiva e risoluzione dell'overload
Viene generato per istanze di associazione tardiva. L'impostazione predefinita per i nuovi progetti è Off (disattivato).
ID: 42017
Avvisi per operandi di tipo Object
Vengono generati quando appaiono operandi di tipo Object
che potrebbero generare un errore con Option Strict On. L'impostazione predefinita per i nuovi progetti è On (attivato).
ID: 42018 e 42019
Avvisi per dichiarazioni che richiedono la clausola As
Vengono generati quando la dichiarazione di una variabile, una funzione o una proprietà priva di una clausola As
darebbe origine a un errore con Option Strict On. Le variabili senza un tipo assegnato vengono considerate di tipo Object
. L'impostazione predefinita per i nuovi progetti è On (attivato).
ID: 42020 (dichiarazione di variabile), 42021 (dichiarazione di funzione) e 42022 (dichiarazione di proprietà).
Avvisi di eccezione per possibili riferimenti null
Vengono generati quando una variabile viene usata prima di ricevere l'assegnazione di un valore. L'impostazione predefinita per i nuovi progetti è On (attivato).
ID: 42104, 42030
Avviso di variabile locale non usata
Viene generato quando una variabile locale viene dichiarata ma non dispone di nessun riferimento. Per impostazione predefinita questa opzione è abilitata.
ID: 42024
Avviso di accesso a un membro condiviso tramite una variabile di istanza
Viene generato quando l'accesso a un membro condiviso tramite un'istanza può avere effetti collaterali o quando l'accesso a un membro condiviso tramite una variabile di istanza non è il lato destro di un'espressione o viene passato come parametro. L'impostazione predefinita per i nuovi progetti è On (attivato).
ID: 42025
Avvisi di accesso ricorsivo a un operatore o una proprietà
Vengono generati quando il corpo di una routine usa lo stesso operatore o la stessa proprietà in cui è definito. L'impostazione predefinita per i nuovi progetti è On (attivato).
ID: 42004 (operatore), 42026 (proprietà)
Avviso di funzione o operatore senza valore restituito
Viene generato quando per una funzione o un operatore non è specificato un valore restituito. Ciò include l'omissione di un'istruzione Set
alla variabile locale implicita con lo stesso nome della funzione. L'impostazione predefinita per i nuovi progetti è On (attivato).
ID: 42105 (funzione), 42016 (operatore)
Avviso di modificatore Overloads usato in un modulo
Viene generato quando il modificatore Overloads
viene usata in Module
. L'impostazione predefinita per i nuovi progetti è On (attivato).
ID: 42028
Avvisi per blocchi catch duplicati o sovrapposti
Viene generato quando un blocco Catch
non viene mai raggiunto perché è correlato ad altri blocchi Catch
definiti. L'impostazione predefinita per i nuovi progetti è On (attivato).
ID: 42029, 42031