A configuração de avisos de Visual Basic

O compilador do Visual Basic inclui um conjunto de avisos sobre códigos que podem causar erros em tempo de execução.Você pode usar essas informações para escrever um código mais limpo, rápido, melhor e com menos erros.Por exemplo, o compilador gerará um aviso quando o usuário tentar invocar um membro de uma variável de objeto não atribuída, retornar de uma função sem definir o valor de retorno, ou executar um bloco Try com erros de lógica para detectar exceções.

Às vezes o compilador fornece lógica extra em favor do usuário para que o usuário possa se concentrar na tarefa à mão, em vez de se concentrar em antecipar possíveis erros.Nas versões anteriores do Visual Basic,Option Strict foi usado para limitar a lógica adicional que fornece o compilador do Visual Basic.A configuração de avisos permite-lhe limitar essa lógica de uma maneira mais granular, no nível de avisos individuais.

Você pode desejar personalizar seu projeto e desativar alguns avisos não relevantes para o aplicativo e ao mesmo tempo tratar outros avisos como erros.Esta página explica como ativar e desativar avisos individuais.

Desativando e Ativando Avisos

Há duas maneiras diferentes para configurar avisos: você pode configurá-los usando o Project Designer, ou você pode usar as opções de compilador /warnaserror e /nowarn.

A guia Compile da página Project Designer permite que você ative e desative avisos.Marque a caixa de seleção Disable All Warnings para desativar todos os avisos; maruqe Treat All Warnings as Errors para tratar todos os avisos como erros.Alguns avisos individuais podem ser alternados como erro ou aviso conforme desejado na tabela exibida.

Quando Option Strict está definida como Off, avisos relacionados a Option Strict não podem ser tratados independentemente uns dos outros.Quando Option Strict está definida como On, os avisos associados são tratados como erros, não importa quais são seus status.Quando Option Strict é definida como Custom especificando /optionstrict:custom no compilador linha de comando, avisos de Option Strict podem ser alternados entre ativos ou desativos de forma independente.

A opção de linha de comando /warnaserror do compilador também pode ser usada para especificar se avisos são tratados como erros.Você pode adicionar uma lista delimitada por vírgulas a essa opção para especificar quais avisos devem ser tratado como erros ou avisos, usando + ou -.A tabela a seguir detalha as opções possíveis.

Opção de linha de comando

Especifica

/warnaserror+

Trata todos os avisos como erros

/warnsaserror-

Não trata avisos como erros.Este é o padrão.

/warnaserror+:<warning list>

Trata avisos específicos como erros, listados por seus números de identificação de erro em uma lista delimitada por vírgula.

/warnaserror-:<warning list>

Não trata avisos específicos como erros, listados por seus números de identificação de erro, em uma lista delimitada por vírgulas.

/nowarn

Não relata avisos.

/nowarn:<warning list>

Não relata avisos especificados, listados por seus números de identificação de erro, em uma lista delimitada por vírgulas.

A lista de avisos contém os números de identificação de erro dos avisos que devem ser tratados como erros, que podem ser usados com as opções de linha de comando para ativar ou desativar avisos específicos.Se a lista de avisos contiver um número inválido, um erro é relatado.

Exemplos

Esta tabela de exemplos de argumentos de linha de comando descreve o que cada argumento faz.

Argumento

Descrição

vbc /warnaserror

Especifica que todos os avisos devem ser tratado como erros.

vbc /warnaserror:42024

Especifica que o aviso 42024 deve ser tratado como um erro.

vbc /warnaserror:42024,42025

Especifica que os avisos 42024 e 42025 devem ser tratado como erros.

vbc /nowarn

Especifica que nenhum aviso deve ser relatado.

vbc /nowarn:42024

Especifica que o aviso 42024 não deve ser relatado.

vbc /nowarn:42024,42025

Especifica que os avisos 42024 e 42025 não devem ser relatados.

Tipos de avisos

A seguir, uma lista de avisos que você pode desejar tratar como erros.

3y20cc1z.collapse_all(pt-br,VS.110).gifImplicit Conversion Warning

Gerado para instâncias de conversão implícita.Eles não incluem conversões implícitas de um tipo numérico intrínseco para uma cadeia de caracteres usando o operador &.O padrão para novos projetos é off.

Identificação: 42016

3y20cc1z.collapse_all(pt-br,VS.110).gifChamada do método com associação tardia e aviso de resolução de sobrecarga

Gerado para instâncias de associação tardia.O padrão para novos projetos é off.

Identificação: 42017

3y20cc1z.collapse_all(pt-br,VS.110).gifOperands of Type Object Warnings

Gerado quando operandos do tipo Object ocorrerem que criariam um erro com Option Strict On.O padrão para novos projetos é on.

Identificação: 42018 e 42019

3y20cc1z.collapse_all(pt-br,VS.110).gifDeclarations Require 'As' Clause Warnings

Gerado quando uma declaração de variável, função ou propriedade sem uma cláusula As pode ter criado um erro com Option Strict On.Variáveis que não têm um tipo atribuído a elas são assumidas como sendo do tipo Object.O padrão para novos projetos é on.

Identificação: 42020 (declaração de variável), 42021 (declaração de função), e 42022 (declaração de propriedade).

3y20cc1z.collapse_all(pt-br,VS.110).gifPossible Null Reference Exception Warnings

Gerado quando uma variável é usada antes de um valor ser atribuído a ela.O padrão para novos projetos é on.

Identificação: 42104, 42030

3y20cc1z.collapse_all(pt-br,VS.110).gifUnused Local Variable Warning

Gerado quando uma variável local é declarada mas nunca é chamada.O padrão é on.

Identificação: 42024

3y20cc1z.collapse_all(pt-br,VS.110).gifAccess of Shared member through Instance Variable Warning

Gerado quando o acesso a um membro compartilhado através uma instância pode ter efeitos colaterais, ou quando o acesso a um membro compartilhado através uma variável de instância não corresponde ao lado direito de uma expressão ou está sendo passado no como um parâmetro.O padrão para novos projetos é on.

Identificação: 42025

3y20cc1z.collapse_all(pt-br,VS.110).gifRecursive Operator or Property Access Warnings

Gerado quando o corpo de uma rotina utiliza o mesmo operador ou propriedade em que é definida.O padrão para novos projetos é on.

Identificação: 42004 (operador), 42026 (propriedade)

3y20cc1z.collapse_all(pt-br,VS.110).gifFunction or Operator without Return Value Warning

Gerado quando a função ou operador não tem um valor de retorno especificado.Isso inclui a omissão de um Set para a variável local implícita com o mesmo nome da função.O padrão para novos projetos é on.

Identificação: 42105 (função), 42016 (operador)

3y20cc1z.collapse_all(pt-br,VS.110).gifOverloads Modifier Used in a Module Warning

Gerado quando Overloads é usado em um Module.O padrão para novos projetos é on.

Identificação: 42028

3y20cc1z.collapse_all(pt-br,VS.110).gifDuplicate or Overlapping Catch Blocks Warnings

Gerado quando um bloco Catch nunca é alcançado devido à sua relação com outros blocos Catch que foram definidos.O padrão para novos projetos é on.

Identificação: 42029, 42031

Consulte também

Referência

Caixa de diálogo Exception Assistant

Try...Catch...Instrução finally (Visual Basic)

/nowarn

/warnaserror (Visual Basic)

Compilar página Project Designer (Visual Basic)

Avisos do compilador são desativados por padrão

Conceitos

Tipos de erro (Visual Basic)