Fehlerbehebung

Selbst erfahrene Entwickler schreiben Code am ersten Versuch nur selten richtig. Deshalb ist die Fehlerbehebung ein wichtiger Teil des Entwicklungsprozesses. In diesem Abschnitt werden einige Verfahren beschrieben, mit denen Sie Fehler in Ihren Skripts finden, verstehen und beheben können.

Fehlermeldungen

Wenn in Ihrem Skript ein Fehler auftritt, wird eine Fehlermeldung angezeigt. In der Nachricht wird eine Zeilennummer zur Fehlerbehebung angezeigt. Auf diese Weise werden zwei grundlegende Fehlertypen angezeigt: Syntaxfehler und Laufzeitfehler.

Syntaxfehler

Syntaxfehler werden durch das Schreiben von Code verursacht, der nicht dem JavaScript-Grammatiksatz folgt. Die Fehler werden erkannt, sobald Sie versuchen, das Skript zu speichern. Das folgende Code-Snippet enthält beispielsweise einen Syntaxfehler:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ";
  MailApp.sendEmail('john@example.com',
                    'Data in row ' + rowNumber,
                    rowData);
}

Das Syntaxproblem hier ist ein fehlendes )-Zeichen am Ende der vierten Zeile. Wenn Sie versuchen, das Skript zu speichern, wird die folgende Fehlermeldung angezeigt:

Fehlendes ")"-Zeichen nach Argumentliste (Zeile 4)

Diese Arten von Fehlern sind normalerweise einfach zu beheben, da sie sofort gefunden werden und normalerweise einfache Ursachen haben. Sie können keine Datei mit Syntaxfehlern speichern. Das bedeutet, dass nur gültiger Code in Ihrem Projekt gespeichert wird.

Laufzeitfehler

Diese Fehler werden durch eine falsche Funktion oder Klasse verursacht und können erst erkannt werden, wenn das Skript ausgeführt wurde. Der folgende Code verursacht beispielsweise einen Laufzeitfehler:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ");
  MailApp.sendEmail('john',
                    'Data in row ' + rowNumber,
                    rowData);
}

Der Code ist korrekt formatiert, aber wir übergeben beim Aufruf von MailApp.sendEmail den Wert „john“ für die E-Mail-Adresse. Da dies keine gültige E-Mail-Adresse ist, wird beim Ausführen des Skripts der folgende Fehler ausgegeben:

Ungültige E-Mail-Adresse: max (Zeile 5)

Die Fehlerbehebung bei diesen Fehlern gestaltet sich jedoch schwieriger, da die Daten, die Sie an eine Funktion übergeben, oft nicht im Code geschrieben sind, sondern aus einer Tabelle, einem Formular oder einer anderen externen Datenquelle abgerufen werden. Mithilfe der folgenden Debugging-Techniken können Sie die Fehlerursache ermitteln.

Häufige Fehler

Nachfolgend finden Sie eine Liste häufiger Fehler und deren Ursachen.

Dienst zu oft aufgerufen: <Aktionsname>

Dieser Fehler weist darauf hin, dass Sie Ihr Tageskontingent für eine bestimmte Aktion überschritten haben. Dieser Fehler kann beispielsweise auftreten, wenn Sie zu viele E-Mails an einem Tag senden. Die Kontingente für Privat-, Domain- und Premiumkonten werden auf verschiedenen Ebenen festgelegt und können ohne vorherige Ankündigung von Google jederzeit geändert werden. Informationen zu den Kontingentlimits für verschiedene Aktionen finden Sie in der Dokumentation zu Apps Script.

Server nicht verfügbar. oder Serverfehler, bitte versuchen Sie es noch einmal.

Für diese Fehler gibt es verschiedene mögliche Ursachen:

  • Ein Google-Server oder ein Google-System ist vorübergehend nicht verfügbar. Warten Sie einige Minuten und versuchen Sie dann noch einmal, das Skript auszuführen.
  • Ihr Skript enthält einen Fehler ohne entsprechende Fehlermeldung. Versuchen Sie, den Fehler im Skript zu beheben, um zu sehen, ob Sie das Problem isolieren können.
  • Dieser Fehler wird durch einen Fehler in Google Apps Script verursacht. Eine Anleitung zum Suchen und Einreichen von Fehlerberichten finden Sie unter Fehler. Bevor Sie einen neuen Fehler melden, prüfen Sie, ob andere Nutzer ihn bereits gemeldet haben.

Für diese Aktion ist eine Autorisierung erforderlich.

Dieser Fehler weist darauf hin, dass dem Skript keine Autorisierung zum Ausführen vorhanden ist. Wenn ein Skript im Skripteditor oder über ein benutzerdefiniertes Menüelement ausgeführt wird, wird dem Nutzer ein Autorisierungsdialog angezeigt. Wenn ein Skript jedoch über einen Trigger, in eine Google Sites-Seite eingebettet oder als Dienst ausgeführt wird, kann das Dialogfeld nicht angezeigt werden und dieser Fehler wird angezeigt.

Öffnen Sie zum Autorisieren des Skripts den Skripteditor und führen Sie eine beliebige Funktion aus. Die Autorisierungsaufforderung wird angezeigt, damit Sie das Skriptprojekt autorisieren können. Wenn das Skript neue nicht autorisierte Dienste enthält, müssen Sie es noch einmal autorisieren.

Dieser Fehler wird häufig durch Trigger ausgelöst, die ausgelöst werden, bevor der Nutzer sie autorisiert hat. Wenn Sie keinen Zugriff auf das Skriptprojekt haben, weil beispielsweise der Fehler für ein von Ihnen verwendetes Add-on auftritt, können Sie das Skript in der Regel mit dem Add-on autorisieren. Wenn ein Trigger weiterhin ausgelöst wird und dieser Fehler auftritt, können Sie die Trigger so entfernen:

  1. Klicken Sie links neben dem Apps Script-Projekt auf Trigger .
  2. Klicken Sie rechts neben dem Trigger, den Sie entfernen möchten, auf das Dreipunkt-Menü > Trigger löschen.

Sie können problematische Add-on-Trigger auch entfernen, indem Sie das Add-on deinstallieren.

Zugriff verweigert: DriveApp oder Die Drive-App wurde von Drive-Apps von Drittanbietern deaktiviert

Administratoren von Google Workspace Domains können das Drive SDK für ihre Domain deaktivieren und damit verhindern, dass Nutzer Google Drive-Apps installieren und verwenden. Mit dieser Einstellung wird auch verhindert, dass Nutzer Add-ons für Apps Script verwenden, die den Drive-Dienst oder den erweiterten Drive-Dienst verwenden. Dies gilt auch dann, wenn das Skript vor der Deaktivierung des Drive SDK durch den Administrator autorisiert wurde.

Wenn jedoch ein Add-on oder eine Webanwendung, die den Drive-Dienst verwendet, für die domainweite Installation veröffentlicht und vom Administrator für einige oder alle Nutzer in der Domain installiert wurde, funktioniert das Skript für diese Nutzer auch dann, wenn das Drive SDK in der Domain deaktiviert ist.

Das Skript ist nicht berechtigt, die Identität des aktiven Nutzers abzurufen.

Gibt an, dass die Identität und die E-Mail-Adresse des aktiven Nutzers für das Skript nicht verfügbar sind. Diese Warnung resultiert aus einem Aufruf von Session.getActiveUser(). Er kann auch auf einen Aufruf von Session.getEffectiveUser() zurückzuführen sein, wenn das Skript in einem anderen Autorisierungsmodus als AuthMode.FULL ausgeführt wird. Wenn diese Warnung angezeigt wird, wird bei nachfolgenden Aufrufen von User.getEmail() nur „“ zurückgegeben.

Je nach Autorisierungsmodus, in dem das Skript ausgeführt wird, gibt es verschiedene Möglichkeiten zur Fehlerbehebung. Der Autorisierungsmodus wird in ausgelösten Funktionen als authMode-Attribut des e-Ereignisparameters verfügbar gemacht.

  • Verwenden Sie in AuthMode.FULL stattdessen Session.getEffectiveUser().
  • Prüfen Sie, ob der Inhaber in AuthMode.LIMITED das Skript autorisiert hat.
  • In anderen Autorisierungsmodi sollten beide Methoden nicht aufgerufen werden.
  • Wenn Sie Google Workspace Kunden sind, die diese Warnung über einen installierbaren Trigger erhalten, achten Sie darauf, dass der Trigger als Nutzer in Ihrer Organisation ausgeführt wird.

Mediathek fehlt

Wenn Sie Ihrem Skript eine beliebte Bibliothek hinzufügen, erhalten Sie möglicherweise eine Fehlermeldung mit dem Hinweis, dass diese nicht vorhanden ist, obwohl die Bibliothek als Abhängigkeit für Ihr Skript aufgeführt ist. Dies kann daran liegen, dass zu viele Nutzer gleichzeitig auf die Bibliothek zugreifen. Versuchen Sie es mit einer der folgenden Lösungen, um diesen Fehler zu vermeiden:

  • Kopieren Sie den Code der Bibliothek und fügen Sie ihn in Ihr Skript ein. Entfernen Sie dann die Bibliotheksabhängigkeit.
  • Kopieren Sie das Bibliotheksskript und stellen Sie es als Bibliothek aus Ihrem Konto bereit. Aktualisieren Sie die Abhängigkeit in Ihrem ursprünglichen Skript auf die neue Bibliothek, nicht auf die öffentliche Bibliothek.

Fehlerbehebung

Nicht alle Fehler führen dazu, dass eine Fehlermeldung angezeigt wird. Wenn der Code technisch korrekt ist und ausgeführt werden kann, kann ein subtilerer Fehler auftreten. Die Ergebnisse entsprechen jedoch nicht Ihren Erwartungen. Hier sind einige Strategien für den Umgang mit solchen Situationen und die weitere Untersuchung eines Skripts, das nicht Ihren Erwartungen entspricht.

Logging

Beim Debugging ist es oft hilfreich, Informationen während der Ausführung eines Skriptprojekts aufzuzeichnen. Google Apps Script bietet zwei Methoden zum Logging von Informationen: den Cloud Logging-Dienst und die einfacheren Logger- und Konsolendienste, die in den Apps Script-Editor eingebunden sind.

Weitere Informationen finden Sie im Leitfaden zu Logging.

Error Reporting

Ausnahmen, die aufgrund von Laufzeitfehlern auftreten, werden mit dem Google Cloud Error Reporting-Dienst automatisch erfasst. Mit diesem Dienst können Sie Ausnahmenachrichten suchen und filtern, die von Ihrem Skriptprojekt erstellt werden.

Informationen zum Zugriff auf Error Reporting finden Sie unter Cloud-Logs und Fehlerberichte in der Google Cloud Platform Console ansehen.

Ausführungen

Bei jeder Ausführung eines Skripts zeichnet Apps Script die Ausführung auf, einschließlich der Cloud-Logs. Anhand dieser Einträge können Sie nachvollziehen, welche Aktionen Ihr Skript ausgeführt hat.

Wenn Sie die Ausführungen Ihres Skripts im Apps Script-Projekt ansehen möchten, klicken Sie links auf Ausführungen .

Dienststatus von Apps Script prüfen

Obwohl es seltene, aber gelegentlich spezifische Google WorkspaceDienste wie Gmail oder Drive gibt, können vorübergehende Probleme auftreten, die zu Dienstausfällen führen können. In diesem Fall funktionieren Apps Script-Projekte, die mit diesen Diensten interagieren, möglicherweise nicht wie erwartet.

Im Google Workspace Status-Dashboardkönnen Sie prüfen, ob ein Google Workspace Dienstausfall vorliegt. Falls derzeit ein Ausfall auftritt, warten Sie entweder, bis er behoben ist, oder suchen Sie in der Google Workspace Hilfe oder in der Dokumentation Google Workspace Bekannte Probleme nach zusätzliche Hilfe.

Debugger und Haltepunkte verwenden

Um Probleme in Ihrem Skript zu finden, können Sie es im Fehlerbehebungsmodus ausführen. Im Debug-Modus wird ein Skript pausiert, sobald es einen Haltepunkt erreicht. Das ist eine Zeile, die Sie in Ihrem Skript hervorgehoben haben und die möglicherweise ein Problem darstellt. Wenn ein Skript pausiert, wird der Wert jeder Variablen zu diesem Zeitpunkt angezeigt. So können Sie die Funktionsweise eines Skripts prüfen, ohne viele Logging-Anweisungen hinzufügen zu müssen.

Haltepunkt hinzufügen

Bewegen Sie den Mauszeiger auf die Zeilennummer der Zeile, der Sie den Haltepunkt hinzufügen möchten, um einen Haltepunkt hinzuzufügen. Klicken Sie links neben der Zeilennummer auf den Kreis. Die folgende Abbildung zeigt ein Beispiel für einen einem Skript hinzugefügten Haltepunkt:

Haltepunkt hinzufügen

Skript im Debug-Modus ausführen

Wenn Sie das Skript im Fehlerbehebungsmodus ausführen möchten, klicken Sie oben im Editor auf Fehlerbehebung.

Bevor das Skript die Zeile mit dem Haltepunkt ausführt, pausiert er und zeigt eine Tabelle mit Informationen zur Fehlerbehebung an. Sie können diese Tabelle verwenden, um Daten wie die Werte von Parametern und die in Objekten gespeicherten Informationen zu prüfen.

Mit den Schaltflächen „Step-in“, „Step over“, „Step out“ oben im Debugger-Bereich können Sie die Ausführung des Skripts steuern. So können Sie das Skript eine Zeile nach dem anderen ausführen und prüfen, wie sich die Werte im Laufe der Zeit ändern.

Probleme mit mehreren Google-Konten

Wenn Sie in mehreren Google-Konten gleichzeitig angemeldet sind, haben Sie möglicherweise Probleme, auf Ihre Add-ons und Webanwendungen zuzugreifen. Die Mehrfachanmeldung oder die Anmeldung in mehreren Google-Konten gleichzeitig wird für Apps Script, Add-ons oder Webanwendungen nicht unterstützt.

  • Wenn Sie den Apps Script-Editor öffnen, während Sie in mehr als einem Konto angemeldet sind, werden Sie von Google aufgefordert, das Konto auszuwählen, mit dem Sie fortfahren möchten.

  • Wenn Sie eine Webanwendung oder ein Add-on öffnen und Probleme bei der Anmeldung auftreten, probieren Sie eine der folgenden Lösungen aus:

    • Melden Sie sich von allen Google-Konten ab und nur in dem Konto an, das das Add-on oder die Webanwendung enthält, auf das Sie zugreifen möchten.
    • Öffnen Sie ein Inkognitofenster in Google Chrome oder ein entsprechendes privates Browserfenster und melden Sie sich in dem Google-Konto an, das das Add-on oder die Web-App enthält, auf das Sie zugreifen möchten.

Hilfe erhalten

Das Beheben eines Problems mit den oben aufgeführten Tools und Techniken kann eine Vielzahl von Problemen lösen. Es können jedoch Probleme auftreten, die zusätzliche Unterstützung erfordern. Auf unserer Supportseite erfahren Sie, wo Sie Fragen stellen und Programmfehler melden können.