Partilhar via


Como: Implementar E/S Try... Catch bloqueia no Visual Basic

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.

Exemplo

Este exemplo move da mais específica para a menos específica; cada exceção é testada por sua vez.

Este exemplo de código também está disponível como um trecho de código IntelliSense.No selecionador do trecho de código, ele está localizado no File system - Processing Drives, Folders, and Files.Para obter mais informações, consulte Como: Inserir trechos em seu código (Visual Basic).

Try
    ' Add code for your I/O task here. 
Catch dirNotFound As System.IO.DirectoryNotFoundException
    ' Code to handle DirectoryNotFoundException.
Catch fileNotFound As System.IO.FileNotFoundException
    ' Code to handle FileNotFoundException.
Catch pathTooLong As System.IO.PathTooLongException
    ' Code to handle PathTooLongException.
Catch ioEx As System.IO.IOException
    ' Code to handle IOException.
Catch security As System.Security.SecurityException
    ' Code to handle SecurityException.
Catch ex As Exception
    ' Rethrow exception if anything else has occurred.
    Throw ex
Finally
    ' Dispose of any resources you used or opened in the Try block. 
End Try

Compilando o código

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: Filtrar erros em um bloco catch no Visual Basic

Como: Verificar interna Exception da exceção

Conceitos

Práticas Recomendadas para usar Trechos de Código IntelliSense

Visão Geral sobre a Manipulação Estruturada de Exceções para o Visual Basic

Escolhendo Quando Usar Manipulação de Exceção Estruturada e não Estruturada

Referência

Try... Catch... Finally instrução (Visual Basic)

Outros recursos

Tarefas de Tratamento de Exceção