Partilhar via


Usando Manipuladores de Exceção Filtradas pelo Usuário

Atualmente, o Visual Basic suporta exceções filtradas pelo usuário. Manipuladores de exceção filtradas pelo usuário capturam e tratam exceções com base nos requisitos que você definiu para a exceção. Esses manipuladores utiliza a instrução Catch com a palavra-chave When.

Essa técnica é útil quando uma determinado objeto de exceção corresponde a vários erros. Nesse caso, o objeto normalmente tem uma propriedade que contém o código de erro específico associado ao erro. Você pode usar a propriedade do código de erro na expressão para selecionar apenas o erro específico que você deseja manipular na cláusula Catch.

O seguinte exemplo do Visual Basic ilustra a instrução Catch/When.

Try
      'Try statements.
   Catch When Err = VBErr_ClassLoadException
      'Catch statements.
End Try

A expressão da cláusula filtrada pelo usuário não é restrita de forma alguma. Se ocorrer uma exceção durante a execução da expressão filtrada pelo usuário, essa exceção será descartada e a expressão de filtro é considerada a ser avaliada como False. Nesse caso, o Common Language Runtime continua a procura por um manipulador para a exceção atual.

Combinando a exceção específica e as cláusulas filtradas pelo usuário

Uma instrução catch pode conter tanto a exceção específica e as cláusulas filtradas pelo usuário. O tempo de execução testa primeiro a exceção específica. Se a exceção específica for bem sucedida, o tempo de execução executa o Filtro de usuário. O filtro genérico pode conter uma referência a variável declarada no filtro de classe. Observe que a ordem das duas cláusulas de filtros não pode ser revertida.

O seguinte exemplo do Visual Basic mostra a específica exceção ClassLoadException na instrução Catch, bem como a cláusula filtrada pelo usuário usando a palavra-chave When.

Try
      'Try statements.
   Catch cle As ClassLoadException When cle.IsRecoverable()
      'Catch statements.
End Try

Consulte também

Tarefas

Como: Usar o bloco Try/Catch para capturar exceções

Como: Usar exceções específicas em um bloco Catch

Conceitos

Práticas recomendadas para tratamento de exceções

Outros recursos

Fundamentos da Manipulação de Exceções