Gestione di errori e avvisi nello script

L'unica volta che Script restituisce errori è quando aggiungi un'entità con valori non validi. Ad esempio, se si tenta di aggiungere un'entità parola chiave con un importo di offerta non valido, l'operazione di compilazione avrà esito negativo e restituirà uno o più errori.

        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);
            }
        }

Tuttavia, se si tenta di aggiornare le proprietà di un'entità con un valore non valido, Scripts non restituisce un errore. Al contrario, Scripts scrive un messaggio di errore nel log delle modifiche e il codice continua l'esecuzione. Ad esempio, il codice seguente tenta di impostare l'offerta CPC del gruppo di annunci. Poiché l'importo non è valido, la chiamata non riesce automaticamente, l'esecuzione dello script continua e viene scritto un messaggio di errore nel log delle modifiche.

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

Nota

Anche se potresti essere tentato di chiamare getCpc il metodo dopo averne impostato il valore per verificare che l'aggiornamento sia riuscito, non farlo. La chiamata al metodo get dopo aver chiamato il metodo set riduce le prestazioni eliminando la funzionalità di aggiornamento batch. Per altre informazioni, vedere Aggiornamenti in batch in Procedure consigliate.

Altri errori, ad esempio errori di runtime o di recupero entità, causano l'arresto dell'esecuzione dello script. Quando ciò accade, il messaggio di errore viene scritto nel registro di testo. Il codice seguente tenta di chiamare la foo() funzione, ma poiché la funzione non è definita, lo script termina l'esecuzione.

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

È consigliabile rivedere sempre tutti i messaggi registrati nel registro delle modifiche e nel registro di testo.