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