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, im Python-Fenster und im Fenster Ergebnisse ist der ID-Code ein Link, über den Sie beim Anklicken zu einer Beschreibungsseite gelangen.

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 der Registerkarte Projekt im Bereich Optionen auf Geoverarbeitung, und aktivieren Sie dann die Option Geoverarbeitungsvorgänge in XML-Protokolldatei schreiben. Weitere Informationen zum Aktivieren der Protokolldatei finden Sie unter Geoverarbeitungsvorgänge in XML-Protokolldatei schreiben.

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 die standardmäßigen Fehler- oder Warnmeldungen auch mit der Funktion AddIDMessage schreiben. 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 ermittelt haben, notieren Sie ggf. zusätzliche Informationen, die in die Meldung eingefügt werden müssen (meist referenziert als <Wert>). Code 12 heißt beispielsweise "<Wert> ist bereits vorhanden". In diesem Fall müssen Sie einen Wert (hier den Namen des Datasets) für den 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 dies nicht der Fall, wird über die Methode AddIDMessage() der Code 12 (000012: <Wert> ist bereits vorhanden) ausgegeben. Das optionale Argument wird verwendet, um den Feature-Class-Namen in der Meldung zu ersetzen.

class overwriteError(Exception):
    pass
import arcpy
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))