Fehlerbehebung

Selbst die erfahrensten Entwickler schreiben selten Code, der auf Anhieb korrekt ist. Daher ist die Fehlerbehebung ein wichtiger Bestandteil des Entwicklungsprozesses. In diesem Abschnitt werden Techniken zum Auffinden, Analysieren und Beheben von Fehlern in Ihren Scripts beschrieben.

Fehlermeldungen

Wenn in Ihrem Skript ein Fehler auftritt, wird eine Fehlermeldung mit einer Zeilennummer angezeigt. Es gibt zwei grundlegende Arten von Fehlern: Syntaxfehler und Laufzeitfehler.

Syntaxfehler

Syntaxfehler treten auf, wenn der Code nicht der JavaScript-Grammatik entspricht. Sie werden erkannt, wenn Sie das Script speichern. Das folgende 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 Problem ist ein fehlendes )-Zeichen am Ende von Zeile 4. Wenn Sie das Skript speichern, wird der folgende Fehler angezeigt:

Fehlende schließende Klammer nach der Argumentliste. (Zeile 4)

Diese Fehler werden sofort gefunden und lassen sich daher einfach beheben. Es wird nur gültiger Code in Ihrem Projekt gespeichert.

Laufzeitfehler

Laufzeitfehler treten auf, wenn eine Funktion oder Klasse falsch verwendet wird. Sie werden erkannt, wenn das Skript ausgeführt wird. Der folgende Code führt beispielsweise zu einem 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 zwar richtig formatiert, „john“ ist aber keine gültige E-Mail-Adresse. Der folgende Fehler wird ausgegeben:

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

Diese Fehler sind schwierig zu beheben, da Daten häufig aus externen Quellen wie Tabellen oder Formularen abgerufen werden. Verwenden Sie Debugging-Techniken, um die Ursache zu ermitteln.

Häufige Fehler

Im Folgenden finden Sie eine Liste häufiger Fehler und ihrer Ursachen.

Dienst zu häufig aufgerufen: <action name>

Dieser Fehler weist darauf hin, dass Sie Ihr Tageskontingent für eine Aktion überschritten haben, z. B. wenn Sie zu viele E‑Mails gesendet haben. Die Kontingente variieren je nach Kontotyp und können sich jederzeit ändern. Apps Script-Kontingente

Server nicht verfügbar. oder Ein Serverfehler ist aufgetreten. Bitte versuchen Sie es noch einmal.

Mögliche Ursachen:

  • Ein Google-Server ist vorübergehend nicht verfügbar. Warten Sie und versuchen Sie es dann noch einmal.
  • Für einen Fehler in Ihrem Skript fehlt eine entsprechende Meldung. Versuchen Sie, das Problem durch Debugging einzugrenzen.
  • Es liegt ein Fehler in Google Apps Script vor. In Bugs können Sie nach Fehlerberichten suchen und sie einreichen.

Für das Ausführen dieser Aktion ist eine Autorisierung erforderlich.

Dem Skript fehlt die erforderliche Autorisierung für die Ausführung. Wenn ein Script über einen Trigger oder als Dienst ausgeführt wird, kann kein Autorisierungsdialogfeld angezeigt werden.

Wenn Sie das Skript autorisieren möchten, öffnen Sie den Skripteditor und führen Sie eine beliebige Funktion aus. Wenn im Skript neue nicht autorisierte Dienste verwendet werden, müssen Sie es neu autorisieren.

Dieser Fehler wird häufig durch Trigger verursacht, die vor der Autorisierung oder nach dem Ablauf ausgelöst werden. Wenn ein Add-on die Ursache ist, verwenden Sie das Add-on noch einmal, um die Autorisierung zu erneuern. Problematische Trigger entfernen:

  1. Klicken Sie im Apps Script-Projekt auf Trigger .
  2. Klicken Sie neben dem Trigger auf das Dreipunkt-Menü > Trigger löschen.

Alternativ können Sie das Add-on deinstallieren.

Auch granulare Berechtigungen können diese Fehler verursachen. Informationen zum Schutz von Triggerausführungen finden Sie auf der Seite Autorisierungsbereiche.

Zugriff verweigert: DriveApp oder Drive-Apps von Drittanbietern wurden durch die Domainrichtlinie deaktiviert

Google Workspace-Administratoren können die Drive API für ihre Domain deaktivieren. Dadurch wird verhindert, dass Nutzer Drive-Apps oder Apps Script-Add-ons verwenden, die den Drive-Dienst nutzen.

Wenn ein Add-on oder eine Webanwendung für die domainweite Installation veröffentlicht und von einem Administrator installiert wird, funktioniert das Script auch dann, wenn die Drive API deaktiviert ist.

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

Die Identität und E-Mail-Adresse des aktiven Nutzers sind nicht verfügbar. Dies ist das Ergebnis von Aufrufen von Session.getActiveUser() oder Session.getEffectiveUser() in anderen Autorisierungsmodi als AuthMode.FULL. Wenn Ihr Skript durch einen Trigger ausgeführt wird, finden Sie den Autorisierungsmodus in der authMode-Eigenschaft des Apps Script-Ereignisobjekts.

So beheben Sie das Problem je nach Autorisierungsmodus:

  • In AuthMode.FULL sollten Sie stattdessen Session.getEffectiveUser() verwenden.
  • Prüfen Sie in AuthMode.LIMITED, ob der Eigentümer das Skript autorisiert hat.
  • In anderen Autorisierungsmodi sollten Sie keine der beiden Methoden aufrufen.
  • Wenn Sie Google Workspace-Kunde sind und diese Warnung zum ersten Mal bei einem installierbaren Trigger angezeigt wird, prüfen Sie, ob der Trigger als Nutzer in Ihrer Organisation ausgeführt wird.

Bibliothek fehlt

Eine Bibliothek wird möglicherweise als fehlend gemeldet, wenn zu viele Personen gleichzeitig darauf zugreifen. So beheben Sie dies:

  • Kopieren Sie den Code der Bibliothek direkt in Ihr Script.
  • Kopieren und stellen Sie die Bibliothek über Ihr eigenes Konto bereit.
  • Wenn die Bibliothek für die Funktion Ihres Scripts nicht erforderlich ist, entfernen Sie sie aus Ihrem Scriptprojekt.

Aufgrund einer fehlenden Bibliotheks- oder Bereitstellungsversion ist ein Fehler aufgetreten. Fehlercode „Not_Found“

Diese Fehlermeldung weist auf eines der folgenden Probleme hin:

  • Die von einer Bereitstellung verwendete Skriptversion wurde gelöscht. Um das Problem zu beheben, bearbeiten Sie die Bereitstellung und wählen Sie eine andere Skriptversion aus.
  • Eine vom Skript verwendete Bibliotheksversion wurde gelöscht. Um dieses Problem zu beheben, suchen Sie im Skripteditor unter „Bibliotheken“ nach der Bibliothek und aktualisieren Sie sie auf eine andere Version oder entfernen Sie sie. Klicken Sie zum Aktualisieren auf die Versionsnummer und wählen Sie eine andere Version aus. Wenn Sie sie entfernen möchten, klicken Sie auf das Dreipunkt-Menü  > Entfernen.
  • Eine Bibliothek enthält eine andere Bibliothek und die Version dieser Bibliothek wurde gelöscht. Wenden Sie sich an den Autor der Bibliothek oder verwenden Sie eine andere Version der Bibliothek, die von Ihrem Skript verwendet wird, um dieses Problem zu beheben.

Fehler 400: invalid_scope beim Aufrufen der Google Chat API mit dem erweiterten Dienst

Wenn Sie auf Error 400: invalid_scope mit der Fehlermeldung Some requested scopes cannot be shown stoßen, haben Sie in der Datei appsscript.json des Apps Script-Projekts keine Autorisierungsbereiche angegeben. In den meisten Fällen ermittelt Apps Script automatisch, welche Bereiche für ein Skript erforderlich sind. Wenn Sie jedoch den erweiterten Chat-Dienst verwenden, müssen Sie die Autorisierungsbereiche, die Ihr Skript verwendet, manuell zur Manifestdatei Ihres Apps Script-Projekts hinzufügen. Weitere Informationen finden Sie unter Explizite Bereiche festlegen.

Um den Fehler zu beheben, fügen Sie der Datei appsscript.json des Apps Script-Projekts die entsprechenden Autorisierungsbereiche als Teil des Arrays oauthScopes hinzu. Wenn Sie beispielsweise die Methode spaces.messages.create aufrufen möchten, fügen Sie Folgendes hinzu:

"oauthScopes": [
  "https://www.googleapis.com/auth/chat.messages.create"
]

URL-Abrufe an <URL> wurden vom Administrator nicht erlaubt

Google Workspace-Administratoren können den Zugriff auf externe Domains über eine Zulassungsliste steuern. Bitten Sie Ihren Administrator, die URL auf die Zulassungsliste zu setzen.

Debugging

Einige Fehler sind subtil und lösen keine Meldungen aus. Ihr Code wird beispielsweise ausgeführt, aber die Ergebnisse sind unerwartet. Mit den folgenden Strategien können Sie Skripts untersuchen, die sich unerwartet verhalten.

Logging

Sie können Informationen während der Ausführung eines Skripts mit dem Cloud Logging-Dienst oder den Logger- und Konsolendiensten im Skripteditor aufzeichnen.

Error Reporting

Wenn Sie Error Reporting in Google Cloud verwenden möchten, nutzen Sie ein standardmäßiges, vom Nutzer verwaltetes Projekt anstelle eines Standardprojekts.

Wenn Sie ein Standardprojekt verwenden, werden Laufzeitfehler automatisch in Google Cloud Error Reporting aufgezeichnet. Cloud-Logs und Fehlerberichte in der Google Cloud Console ansehen

Ausführungen

In Google Apps Script wird jede Ausführung aufgezeichnet, einschließlich Cloud-Logs. Klicken Sie auf Ausführungen , um die Ausführungen aufzurufen.

Dienststatus prüfen

Im Google Workspace-Status-Dashboard können Sie nachsehen, ob es Dienstunterbrechungen bei Google Workspace gibt.

Debugger und Breakpoints verwenden

Wenn Sie Probleme in Ihrem Script finden möchten, können Sie es im Debug-Modus ausführen. Wenn ein Skript im Debugmodus ausgeführt wird, wird es angehalten, sobald es einen Haltepunkt erreicht. Ein Haltepunkt ist eine Zeile, die Sie in Ihrem Skript markiert haben, weil Sie vermuten, dass dort ein Problem vorliegt. Wenn ein Skript pausiert wird, wird der Wert jeder Variablen zu diesem Zeitpunkt angezeigt. So können Sie die Funktionsweise eines Skripts untersuchen, ohne viele Protokollanweisungen hinzufügen zu müssen.

Haltepunkt hinzufügen

Wenn Sie einen Haltepunkt hinzufügen möchten, bewegen Sie den Mauszeiger auf die Zeilennummer der Zeile, der Sie den Haltepunkt hinzufügen möchten. Klicken Sie links neben der Zeilennummer auf den Kreis. Das Bild unten zeigt ein Beispiel für einen Haltepunkt, der einem Script hinzugefügt wurde:

Haltepunkt hinzufügen

Skript im Debugging-Modus ausführen

Wenn Sie das Skript im Debug-Modus ausführen möchten, klicken Sie oben im Editor auf Debuggen.

Bevor das Skript die Zeile mit dem Haltepunkt ausführt, wird es angehalten und eine Tabelle mit Debugging-Informationen angezeigt. In dieser Tabelle können Sie Daten wie die Werte von Parametern und die in Objekten gespeicherten Informationen ansehen.

Mit den Schaltflächen „Step in“, „Step over“ und „Step out“ oben im Debugger-Bereich können Sie steuern, wie das Script ausgeführt wird. So können Sie das Skript zeilenweise ausführen und beobachten, wie sich die Werte im Laufe der Zeit ändern.

Fehler: Der Quellcode für die aktuelle Zeile ist nicht verfügbar.

Der Quellcode für die aktuelle Zeile ist nicht verfügbar

Dieser Fehler tritt auf, wenn keine aktive Debugging-Datei verfügbar ist. Google Apps Script unterstützt die Anzeige von dynamisch generierten JavaScript-Scripts (JS) im Script-Editor nicht, z. B. von Scripts, die mit eval() und new Function() generiert werden. Diese Skripts werden in der V8-Engine erstellt und ausgeführt, sind aber nicht als eigenständige Dateien im Editor vorhanden. Wenn Sie diese Skripts durchlaufen, tritt dieser Fehler auf.

Sehen Sie sich beispielsweise den folgenden Code an:

function myFunction() {
  eval('a=2');
}

Wenn eval() aufgerufen wird, wird das Argument als JS-Code behandelt und als dynamisch erstelltes Script in der V8-Engine ausgeführt. Wenn Sie eval() durchlaufen, wird dieser Fehler angezeigt. Wenn das Skript einen //# sourceURL-Kommentar enthält, wird sein Name im Aufrufstack angezeigt. Andernfalls wird er als unbenannter Eintrag angezeigt.

Trotz der Fehlermeldung bleibt die Debugging-Sitzung aktiv und die Ausführung kann fortgesetzt werden. Fahren Sie mit dem Schritt „Einsteigen“, „Aussteigen“ oder „Fortsetzen“ fort. Dieser Fehler wird jedoch weiterhin angezeigt, solange die Ausführung im Bereich des dynamischen Skripts bleibt. Nachdem die Ausführung aus dem dynamischen Skript heraus verlagert wurde, wird das Debugging ohne diesen Fehler fortgesetzt.

Probleme mit mehreren Google-Konten

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

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

  • Wenn Sie eine Web-App oder ein Add-on öffnen und Probleme mit der Mehrfachanmeldung auftreten, versuchen Sie eine der folgenden Lösungen:

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

Hilfe erhalten

Auf unserer Supportseite können Sie Fragen stellen oder Fehler melden.