Ecriture de messages dans les outils de script
Lorsqu'un outil est exécuté, ArcPy reconnaît l'application à partir de laquelle il est appelé (ArcMap ou ArcCatalog, par exemple). Vous pouvez alors écrire des messages dans Python et ceux-ci s'affichent automatiquement dans la boîte de dialogue de progression, le résultat de l'outil dans la fenêtre Résultats, et la fenêtre Python. Cela signifie également que tout modèle ou outil de script qui appelle votre outil a accès aux messages que vous écrivez.
Pour en savoir plus sur la messagerie, reportez-vous à la rubrique Fonctionnement des messages dans les outils de script.
Pendant l'exécution d'un outil, des messages sont écrits qui peuvent être récupérés grâce à des fonctions de géotraitement. Voici les quatre fonctions ArcPy d'écriture de messages :
- AddMessage(message) — pour les messages d'information générale (gravité = 0) ;
- AddWarning(message) — pour les messages d'avertissements (gravité = 1) ;
- AddError(message) — pour les messages d'erreur (gravité = 2).
- AddIDMessage(message_type, message_ID, add_argument1, add_argument2) — utilisé pour les erreurs et les avertissements (l'argument message_type détermine la gravité).
Un appel de la méthode AddIDMessage() affiche un message court, ainsi que l'ID du message, qui fournit un lien vers une explication de la cause et des solutions au problème. Lorsque vous ajoutez un message d'erreur (en utilisant AddError() ou AddIDMessage(), les éléments suivants se produisent :
- Votre script poursuit son exécution. Il vous appartient d'ajouter la logique de gestion des erreurs appropriée et d'interrompre l'exécution de votre script. Par exemple, il se peut que vous deviez supprimer des fichiers intermédiaires ou des curseurs.
- Lors du renvoi de votre script, le modèle ou le script qui appelle reçoit une erreur système et l'exécution s'interrompt.
Exemple d'ajout de messages
Dans l'exemple ci-dessous, l'entrée est évaluée, et si elle ne contient pas d'entités en entrée, un message d'erreur est ajoutée à l'outil et une exception arcpy.ExecuteError est déclenchée pour terminer l'outil.
import arcpy
input = arcpy.GetParameterAsText(0)
output = arcpy.GetParameterAsText(0)
# If the input has no features, add an error message, and raise
# an arcpy.ExecuteError
if int(arcpy.GetCount_management(input).getOutput(0)) == 0:
arcpy.AddError("{0} has no features.".format(input))
raise arcpy.ExecuteError