Configurando Avisos (Warnings) no 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 de configurar avisos: Você pode configurá-los usando o Project Designer, ou você pode usar o /warnaserror e /nowarn Opções de compilador.
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.
Implicit 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 sequência de caracteres usando o operador &. O padrão para novos projetos é off.
IDENTIFICAÇÃO: 42016
Late bound Method Invocation and Overload Resolution Warning
Gerado para instâncias de ligação atrasada. O padrão para novos projetos é off.
IDENTIFICAÇÃO: 42017
Operands 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
Declarations 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).
Possible 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
Unused Local Variable Warning
Gerado quando uma variável local é declarada mas nunca é chamada. O padrão é on.
IDENTIFICAÇÃO: 42024
Access 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
Recursive Operator or Property Access Warnings
Gerado quando o corpo de uma rotina utiliza o mesmo operador ou propriedade dentro da qual ela está definida. O padrão para novos projetos é on.
IDENTIFICAÇÃO: 42004 (operador), 42026 (propriedade)
Function 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)
Overloads Modifier Used in a Module Warning
Gerado quando Overloads é usado em um Module. O padrão para novos projetos é on.
IDENTIFICAÇÃO: 42028
Duplicate 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
Tarefas
Como: Ativar ou desativar avisos do compilador (Visual Basic)
Referência
Caixa de diálogo Exception Assistant
Compiler Warnings That Are Off by Default