Partager via


Gestion des erreurs et des avertissements dans votre script

La seule fois où Scripts retourne des erreurs, c’est lorsque vous ajoutez une entité avec des valeurs non valides. Par exemple, si vous essayez d’ajouter une entité mot clé avec un montant d’enchère non valide, l’opération de génération échoue et retourne une ou plusieurs erreurs.

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

Toutefois, si vous essayez de mettre à jour les propriétés d’une entité avec une valeur non valide, Scripts ne retourne pas d’erreur. Au lieu de cela, Scripts écrit un message d’erreur dans le journal des modifications et votre code continue à s’exécuter. Par exemple, le code suivant tente de définir l’enchère AUT du groupe d’annonces. Étant donné que le montant n’est pas valide, l’appel échoue en mode silencieux, le script continue de s’exécuter et un message d’erreur est écrit dans le journal des modifications.

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

Remarque

Bien que vous soyez tenté d’appeler getCpc la méthode après avoir défini sa valeur pour vérifier que la mise à jour a réussi, ne le faites pas. L’appel de la méthode get après l’appel de la méthode set dégrade les performances en éliminant la fonctionnalité de mise à jour par lots. Pour plus d’informations, consultez Mises à jour de traitement par lot dans Meilleures pratiques.

D’autres erreurs telles que des erreurs d’exécution ou des échecs de récupération d’entité entraînent l’arrêt de l’exécution du script. Dans ce cas, le message d’erreur est écrit dans le journal de texte. Le code suivant tente d’appeler la foo() fonction, mais comme la fonction n’est pas définie, le script met fin à l’exécution.

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

Vous devez toujours passer en revue tous les messages enregistrés dans le journal des modifications et le journal texte.