Gestion des exceptions

Effectué

Des exceptions peuvent survenir pour la quasi-totalité des actions. Pour cette raison, la plupart des propriétés des actions contiennent un bouton En cas d’erreur. Ce bouton permet d’accéder aux paramètres de gestion des exceptions de l’action.

Gestion des exceptions au niveau de l’action

Dans l’exemple initial, nous avons mentionné que la base de données du client peut être inaccessible, ce qui entraîne la création d’une exception par l’action qui communique avec la base de données.

Pour éviter cela, ouvrez les propriétés de l’action et appuyez sur le bouton En cas d’erreur.

Gestion des exceptions dans les propriétés de l’action Ouvrir une connexion SQL.

Dans cette vue, vous pourrez configurer le comportement de gestion des exceptions de l’action, soit en activant des règles prédéfinies, soit en ajoutant de nouvelles. Ces règles entrent en vigueur si cette action spécifique échoue, et dans l’ordre dans lequel elles sont ordonnées :

Onglet Gestion des exceptions renseigné dans les propriétés de l’action Ouvrir une connexion SQL.

Remarque

Vous pouvez glisser-déplacer toutes les règles créées par l’utilisateur pour les réorganiser.

Dans le cas ci-dessus, par exemple, lorsque cette action échoue, une nouvelle tentative est réalisée au bout de deux secondes, puis un sous-flux est exécuté, qui envoie un e-mail pour informer l’administrateur du statut de la base de données. De plus, l’action modifie la valeur d’une variable indiquant que la base de données est hors service.

Par défaut, la gestion des exceptions prend effet lorsqu’une exception se produit pendant l’exécution de cette action. Cependant, vous pouvez la configurer de sorte que la gestion des exceptions ne se produise que sur un type d’exception spécifique. Chaque action possède des types d’exceptions spécifiques qu’elle peut produire :

Onglet Gestion des exceptions renseigné dans les propriétés de l’action Ouvrir une connexion SQL avec des exceptions sélectionnées.

Dans cet exemple, les règles de gestion des exceptions s’appliquent uniquement lorsque l’exception Impossible de se connecter à la source de données survient.

Gestion des exceptions de niveau bloc

Dans certains cas, il est impossible d’être certain de savoir quelle action risque d’échouer, et il n’est pas pratique d’appliquer les mêmes règles de gestion des exceptions à chaque action.

Prenons l’exemple d’un flux dans lequel Power Automate pour le bureau interagit avec le portail web. Si, à un moment quelconque de cette tâche, le portail ou le navigateur ne répond plus, l’action privilégiée consiste à fermer le navigateur, le relancer et redémarrer l’intégralité des interactions avec le portail web depuis le début. Cependant, une interaction avec un portail web peut concerner des dizaines, voire des centaines d’actions. Il est donc impossible d’affecter les mêmes règles de gestion des exceptions à chaque action individuellement.

L’action Erreur sur le bloc permet d’appliquer un ensemble de règles de gestion des exceptions à un bloc entier d’actions :

Boîte de dialogue Propriétés de l’action Erreur sur le bloc.

Les actions entre les actions Erreur sur le bloc et Fin sont affectées par les règles de gestion des exceptions du bloc :

Espace de travail avec un exemple utilisant l’action Erreur sur le bloc.

Dans cet exemple, si l’une des actions du bloc échoue, les règles du bloc entrent en vigueur. Un sous-flux qui ferme le navigateur web est exécuté et le bloc entier est répété, ce qui empêche le flux de d’échouer en raison de l’absence de réaction d’une page web ou d’un navigateur.

Priorités de gestion des exceptions

L’ordre dans lequel la gestion des exceptions est appliquée est descendant. Cela signifie qu’en cas d’échec d’une action, ses règles de gestion des exceptions individuelles prennent effet immédiatement. Si cela ne suffit pas pour que le flux reprenne, toute gestion d’exception au niveau du bloc prend effet.

Par conséquent, toutes les règles de gestion des exceptions de niveau action s’exécutent avant les règles de niveau bloc correspondantes.