Fehler und Warnungen bei Geoverarbeitungswerkzeugen

Geoverarbeitungsfehler und Warnungen werden mit einem sechsstelligen Code und einer Textmeldung von den Geoverarbeitungswerkzeugen zurückgegeben. Jeder Fehler und jede Warnung weist im Desktop-Hilfesystem eine entsprechende Beschreibungsseite auf. Diese Seite enthält eine ausführliche Beschreibung des Fehlers und mögliche Lösungen für den Fehler. In Werkzeugdialogfeldern, dem Python-Fenster und dem Fenster Ergebnisse ist der ID-Code ein Link, der Sie beim Anklicken zu einer Beschreibungsseite bringt.

Interne Fehler und Verlaufsprotokolldateien

Wenn ein Werkzeug einen Fehler generiert, werden ein Standardfehlercode und eine Meldung angezeigt. Es kann vorkommen, dass zusammen mit dem Standardfehlercode interne Systemfehler auftreten. Diese internen Systemfehler werden im Normalfall jedoch nicht als Teil der Standardfehlermeldung angegeben, da sie meist wenig zum Verständnis des Problems beitragen. In bestimmten Fällen können diese Meldungen jedoch weitere Hinweise für die Korrektur und Behandlung der Fehlerursache bieten.

Um interne Systemfehler anzuzeigen, müssen Sie zuerst die Meldungsprotokollierung aktivieren. Klicken Sie auf Geoverarbeitung > Geoverarbeitungsoptionen und aktivieren Sie Geoverarbeitungsvorgang in einer Protokolldatei aufzeichnen. Weitere Informationen zum Aktivieren und Lesen der Protokolldatei finden Sie unter Verlaufsprotokolldateien.

Schreiben von Standardfehlern und -warnungen in Skripten und Skriptwerkzeugen

In Python haben Sie die Möglichkeit, eigene benutzerdefinierte Fehler und Warnungen mithilfe der Funktionen AddWarning und AddError zu schreiben. Aber Sie können auch die Standardfehlers oder Warnmeldungen über die Funktion AddIDMessage verwenden. Durch das Schreiben eines Standardfehlers oder einer Warnung müssen Sie keine eigene Dokumentation bereitstellen; Benutzer von Skripten können die Fehlerbeschreibungen und Lösungen in der Desktop-Hilfe lesen.

Um einen Standardfehler oder eine Warnung zu schreiben, müssen Sie zuerst den sechsstelligen Code wissen. Dazu müssen Sie die Beschreibungen in der Desktop-Hilfe durchsuchen, um den richtigen sechsstelligen Code zu finden. Nachdem Sie den entsprechenden Code identifiziert haben, notieren Sie ggf. zusätzliche Informationen, die in die Meldung eingefügt werden müssen (meist referenziert als <value>). Code 12 heißt beispielsweise "<value> already exists". In diesem Fall müssen Sie dazu einen Wert (das heißt, den Namen des Datasets) als Parameter {add_argument1} von AddIDMessage() angeben.

Im nachfolgenden Auszug aus dem Python-Skript wird überprüft, ob eine Feature-Class als Eingabe bereitgestellt wurde. Ist das nicht der Fall, wird über die AddIDMessage()-Methode der Code 12 (000012: <value> already exists) ausgegeben. Das optionale Argument wird verwendet, um den Feature-Class-Namen in der Meldung zu ersetzen.

class overwriteError(Exception):
    pass

import arcpy
import sys

inFeatureClass  = arcpy.GetParameterAsText(0)
outFeatureClass = arcpy.GetParameterAsText(1)

try:
    # If the output feature class already exists, raise an error
    #
    if arcpy.Exists(inFeatureClass):
        raise overwriteError(outFeatureClass)
    else:
        #
        # Additional processing steps
        #

except overwriteError as e:
    # Use message ID 12, and provide the output feature class
    #    to complete the message.
    #
    arcpy.AddIDMessage("Error", 12, str(e))

7/10/2012