Exercício: tratamento de exceções
O tratamento de exceções é implementado em fluxos já desenvolvidos, após a identificação dos riscos por meio de testes.
Para implementar o exercício a seguir, você pode criar um novo fluxo contendo apenas uma ação Baixar da Web. O fluxo no exemplo é definido para baixar a ferramenta de criação de mídia do Windows 10, mas você pode configurar a ação para baixar qualquer arquivo.
Depois de desenvolver o subfluxo principal, crie um novo subfluxo denominado Check_Web_Access. O subfluxo deve verificar se o servidor que você deseja usar está disponível.
Para obter essa funcionalidade, use a ação Ping para verificar o servidor. Em seguida, use um bloco If para verificar se a resposta indica que o servidor está disponível. Quando a ação Ping retorna Falha, o fluxo deve parar.
Opcionalmente, você pode usar as ações Obter data e hora atuais e Gravar texto em arquivo para acrescentar um novo registro a um arquivo de log.
Configurar tratamento de exceções para uma ação individual
De volta ao subfluxo principal, a ação Baixar da Web pode ser um risco potencial, pois os problemas de conectividade com a Internet podem fazer com que o fluxo falhe.
Para tornar a ação resistente a problemas de conectividade, abra as propriedades dela e selecione Se houver erro. Depois, configure as seguintes opções:
Política de repetição corrigida
Vezes: 1
Intervalo: 2
Execute o subfluxo Check_Web_Access
Continuar execução de fluxo, repetindo a ação.
Essa configuração de tratamento de erros faz com que a ação tente novamente após dois segundos sempre que falhar.
Se a nova tentativa não for bem-sucedida, o subfluxo Check_Web_Access será executado. O subfluxo verifica se o servidor está disponível. Se não estiver, o fluxo será interrompido. Se estiver disponível, a ação será executada novamente.
Configurar tratamento de exceções para um bloco de ações
Após garantir que a ação Baixar da Web seja executada conforme planejado, vamos adicionar mais duas ações ao subfluxo principal.
Implante a ação Copiar arquivo(s) e configure-a para criar uma cópia do arquivo baixado em um segundo disco rígido na área de trabalho. Em seguida, use a ação Renomear arquivo(s) para alterar o nome do arquivo recém-criado.
Durante a execução do fluxo, a segunda unidade pode ser desconectada. Esse cenário fará com que o fluxo falhe. Para evitar falhas, você deve implementar um comportamento de tratamento de exceção comum para ambas as ações, pois o risco é o mesmo.
Adicione uma ação Erro no bloco antes de copiar o arquivo e configure-o para ignorar as ações no bloco.
Agora, se ocorrer algum erro quando o arquivo for copiado ou renomeado, o fluxo ignorará essas etapas e continuará em execução.