Manuseio de exceção

Concluído

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.

Tratamento de exceções nas propriedades da ação Abrir Conexão SQL.

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:

A guia Tratamento de Exceções preenchida nas propriedades da ação Abrir Conexão SQL.

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:

A guia Tratamento de Exceções preenchida nas propriedades da ação Abrir Conexão SQL com as exceções selecionadas.

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:

A caixa de diálogo Propriedades da ação de erro Em bloco.

As ações entre as ações erro Em bloco e Encerrar são afetadas pelas regras de tratamento de exceções do bloco:

O Espaço de trabalho com um exemplo usando a ação erro Em 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.