Freigeben über


Behandeln von Fehlern und Warnungen in Ihrem Skript

Skripts gibt nur Fehler zurück, wenn Sie eine Entität mit ungültigen Werten hinzufügen. Wenn Sie beispielsweise versuchen, eine Schlüsselwort (keyword) Entität mit einem ungültigen Gebotsbetrag hinzuzufügen, schlägt der Buildvorgang fehl und gibt mindestens einen Fehler zurück.

        var operation = adGroup.newKeywordBuilder()
            .withText(keywordText)
            .withCpc(-5)
            .build();

        if (operation.isSuccessful()) {
            var keyword = operation.getResult();
            Logger.log(`Added keyword, ${keyword.getText()}.`);
        }
        else {
            // The bid amount is not valid, so this path executes
            for (var error of operation.getErrors()) {
                Logger.log(error);
            }
        }

Wenn Sie jedoch versuchen, die Eigenschaften einer Entität mit einem ungültigen Wert zu aktualisieren, gibt Skripts keinen Fehler zurück. Stattdessen schreibt Scripts eine Fehlermeldung in das Änderungsprotokoll , und Ihr Code wird weiterhin ausgeführt. Der folgende Code versucht beispielsweise, das CPC-Gebot der Anzeigengruppe festzulegen. Da der Betrag ungültig ist, schlägt der Aufruf im Hintergrund fehl, das Skript wird weiterhin ausgeführt, und eine Fehlermeldung wird in das Änderungsprotokoll geschrieben.

function main() {
    var adGroup = AdsApp.adGroups().get().next();
    adGroup.bidding().setCpc(-5);
}

Hinweis

Obwohl Sie möglicherweise versucht sind, die Methode aufzurufen getCpc , nachdem Sie ihren Wert festgelegt haben, um zu überprüfen, ob das Update erfolgreich war, ist dies nicht der Fall. Das Aufrufen der get-Methode nach dem Aufrufen der set-Methode beeinträchtigt die Leistung, indem die Batchaktualisierungsfunktion entfernt wird. Weitere Informationen finden Sie unter Batchverarbeitung von Updates unter Bewährte Methoden.

Andere Fehler wie Laufzeitfehler oder Fehler beim Abrufen von Entitäten führen dazu, dass die Skriptausführung beendet wird. In diesem Fall wird die Fehlermeldung in das Textprotokoll geschrieben. Der folgende Code versucht, die foo() Funktion aufzurufen, aber da die Funktion nicht definiert ist, beendet das Skript die Ausführung.

function main() {
    foo(); // The script stops because foo() is undefined and generates a reference error
    Logger.log('This line is never logged!');
}

Sie sollten immer alle Meldungen überprüfen, die im Änderungs- und Textprotokoll protokolliert werden.