Escolhendo quando usar (Visual Basic) de manipulação de exceção estruturada e não estruturada
Manipulação de exceção estruturada — usa uma estrutura de controle contendo exceções, blocos isolados de código, e filtros para criar um mecanismo de manipulação de exceção. Isso permite que seu código possa diferenciar entre os diferentes tipos de erros e reagir de acordo com circunstâncias. Na manipulação de exceção não estruturada, uma instrução On Error no início do código trata todas as exceções.
Comentários
A manipulação de exceção estruturada é significativamente mais versátil, robusto, e flexível que a não estruturada. Se possível, use manipulação de exceção estruturada. Entretanto, você deve preferir usar manipulação de exceção não estruturada sob estas circunstâncias:
Você estiver atualizando um aplicativo escrito em uma versão anterior do Visual Basic.
Você está desenvolvendo uma versão preliminar de um aplicativo e você não importa se o programa falhar em desligar graciosamente.
Você sabe com antecedência exatamente o que causará a exceção.
Um prazo está pressionando, você precisa pegar atalhos, e está disposto a sacrificar flexibilidade em prol de velocidade.
O código é trivial ou tão curto, que você só precisará testar a ramificação de código gerando a exceção.
Você precisa usar a instrução Resume Next, que não é suportada pela manipulação de exceção estruturada.
Não é possível combinar manipulação de exceção estruturada e não estruturada na mesma função. Se você usar uma instrução On Error, você não é pode usar uma instrução Try...Catch na mesma função.
Independentemente de você optar por manipular exceções em seu código, você deve dar um passo pra trás e examinar que suposições que o código faz. Por exemplo, quando seu aplicativo pede ao usuário para inserir um número de telefone, as seguintes suposições são feitas:
O usuário entrará com um número em vez de caracteres.
O número terá um determinado formato.
O usuário não entrará com uma sequência de caracteres nula.
O usuário tem um único número de telefone.
A entrada do usuário pode violar quaisquer ou todas essas suposições. Um código robusto requer manipulação de exceção adequada, que permite que seu aplicativo recupere graciosamente (que meigo!) de uma violação dessas.
A menos que você possa garantir que um método não lançará nenhuma exceção em nenhuma circunstância, faça manipulação de exceção de forma informativa. Manipulação de exceção deve ter significado. Além de informar que aconteceu algo errado, as mensagens resultantes de manipulação de exceção devem indicar por que e onde está o problema. Uma mensagem sem informações adicionais junto com as linhas de "An error has occurred" (Ocorreu um erro) só traz frustração ao usuário.
Consulte também
Tarefas
A solução de problemas (Visual Basic) de manipulação de exceção
Conceitos
Visão Geral sobre a Manipulação Estruturada de Exceções para o Visual Basic
Visão geral (Visual Basic) de manipulação de exceção não estruturada