Manuseio de exceção
Podem ocorrer exceções de praticamente qualquer ação. Por esse motivo, a maioria das propriedades de ações contêm um botão Ao ocorrer erro. Este botão permite acesso às configurações de tratamento de exceções da ação.
Tratamento de exceções no nível de ação
No exemplo inicial, mencionamos que o banco de dados do cliente pode estar inacessível, fazendo com que a ação que se comunica com o banco de dados produza uma exceção.
Para evitar isso, abra as propriedades da ação e pressione o botão Em erro.
Neste modo de exibição, você poderá configurar o comportamento de tratamento de exceções da ação, ativando as regras predefinidas ou adicionando novas. Essas regras entram em vigor caso a ação específica falhe e na ordem em que são organizadas:
Observação
Você pode arrastar e soltar quaisquer regras criadas pelo usuário para reorganizá-las.
No caso acima, por exemplo, quando essa ação falhar, ela tentará mais uma vez após 2 segundos e, em seguida, executará um subfluxo que enviará um email para notificar o administrador sobre o status do banco de dados. Além disso, a ação alterará o valor de uma variável que indica que o banco de dados está inativo.
Por padrão, o tratamento de exceções entra em vigor quando ocorre uma exceção enquanto essa ação está sendo executada; no entanto, você pode configurá-la para que o tratamento de exceções ocorra somente em um tipo específico de exceção. Cada ação tem tipos de exceção específicos que podem ser produzidos:
Neste exemplo, as regras de tratamento de exceções só se aplicam quando ocorre a exceção Não é possível conectar à Fonte de Dados.
Tratamento de exceções no nível de bloqueio
Há casos em que uma pessoa pode não certeza de qual ação corre risco de falhar, e não é viável aplicar as mesmas regras de tratamento de exceções a cada ação.
Por exemplo, considere um fluxo no qual o Power Automate para área de trabalho interage com o portal da Web. Se, a qualquer momento durante essa tarefa, o portal ou o navegador ficar sem resposta, a ação preferencial será fechar o navegador, iniciá-lo novamente e reiniciar toda a interação do portal da Web desde o início. No entanto, uma interação do portal da Web pode abranger dezenas, ou até mesmo centenas de ações; portanto, atribua as mesmas regras de tratamento de exceções a cada ação individualmente é inviável.
A ação erro Em bloco permite aplicar um conjunto de regras de tratamento de exceções a um bloco inteiro de ações:
As ações entre as ações erro Em bloco e Encerrar são afetadas pelas regras de tratamento de exceções do bloco:
Neste exemplo, se qualquer uma das ações no bloco falhar, as regras do bloco terão efeito; um subfluxo que fecha o navegador da Web será executado e todo o bloco será repetido, impedindo, assim, que o fluxo falhe devido a uma página da Web ou um navegador que não seja responsivo.
Prioridades de tratamento de exceções
A ordem na qual o tratamento de exceções é aplicado é de baixo para cima; isso significa que, no caso de uma ação falhar, suas regras de tratamento de exceções individuais entrarão em vigor imediatamente. Se isso não for suficiente para retomar o fluxo, qualquer tratamento de exceções em nível de bloco entrar surtirá efeito.
Portanto, qualquer regra de tratamento de exceções no nível da ação é executada antes das respectivas regras de nível de bloco.