Como: Capturar uma exceção no Visual Basic
Este exemplo mostra como usar um bloco Try e Catch para capturar exceções.
Exemplo
Este exemplo mostra como usar um bloco Try…Catch para capturar um OverflowException.
Este exemplo de código também está disponível como um trecho de código IntelliSense.No selecionador de trechos de código, ele está localizado em Visual Basic Language.Para obter mais informações, consulte Como: Inserir trechos em seu código (Visual Basic).
Dim Top As Double = 5
Dim Bottom As Double = 0
Dim Result As Integer
Try
Result = CType(Top / Bottom, Integer)
Catch Exc As System.OverflowException
MsgBox("Attempt to divide by zero resulted in overflow")
End Try
Este exemplo requer:
- Uma referência ao namespace System.
O exemplo de código a seguir implementa um bloco Try...Catch que trata Exception, IOException, e todas as exceções que derivam de IOException.
Try
' Add code for your I/O task here.
Catch dirNotFound As System.IO.DirectoryNotFoundException
Throw dirNotFound
Catch fileNotFound As System.IO.FileNotFoundException
Throw fileNotFound
Catch pathTooLong As System.IO.PathTooLongException
Throw pathTooLong
Catch ioEx As System.IO.IOException
Throw ioEx
Catch security As System.Security.SecurityException
Throw security
Catch ex As Exception
Throw ex
Finally
' Dispose of any resources you used or opened in the Try block.
End Try
Adicione o código que você deseja executar ao bloco Try.
Programação robusta
Use este bloco de código como um ponto de partida para envolver uma operação de dados em uma instrução Try...Catch.Este bloco Try...Catch foi projetado para capturar e relançar todas as exceções.Essa pode não ser a escolha certa para o seu projeto.Para uma discussão sobre as opções de manipulação de exceção, consulte Práticas Recomendadas para usar Trechos de Código IntelliSense.
Você pode reduzir a probabilidade de exceções usando controles de Windows Forms como os controles de componentes OpenFileDialog componente (Windows Forms) e SaveFileDialog componente (Windows Forms) que limitam as opções de usuário para nomes de arquivo válidos.A propriedade FileInfo.Exists pode verificar se um arquivo existe antes de tentar abri-lo.Contudo, o uso desses controles e classes não é à prova de falhas.O sistema de arquivos pode alterar entre o momento que o usuário seleciona um arquivo e a hora em que o código será executado.Portanto, a manipulação de exceção quase sempre será necessária quando se estiver trabalhando com arquivos.
Segurança
Para muitas tarefas envolvendo arquivos, o assembly requer um nível de privilégio concedido pela classe FileIOPermission.Se você estiver executando em um contexto parcialmente confiável, o código pode lançar uma exceção devido a privilégios insuficientes.Para obter mais informações, consulte Noções Básicas sobre Segurança de Accesso a Código. O usuário também precisa de acesso ao arquivo, se ele existir.Para obter mais informações, consulte Listas de controle de acesso (ACLs).
Não faça decisões sobre o conteúdo do arquivo com base na extensão do nome do arquivo.Por exemplo, o arquivo Form1.vb pode não ser um arquivo de origem Visual Basic.
Consulte também
Tarefas
Como: Lançar uma exceção no Visual Basic
Como: Código de teste com um bloco try … catch no Visual Basic
Como: Limpar recursos com um bloco try … finally no Visual Basic
Como: Filtrar erros em um bloco catch no Visual Basic
Como: Verificar interna Exception da exceção
Solução de problemas de manipulação de exceção
Conceitos
Escolhendo Quando Usar Manipulação de Exceção Estruturada e não Estruturada