Wie geben Sie eine benutzerdefinierte Fehlermeldung von Google Apps-Skripts zurück?

7

Beim Ausführen eines Google Apps-Skripts aus einer Google-Tabelle wird, wenn eine der Google-API-Dateien falsch verwendet wird, oben in der Tabelle ein roter "Butterbar" -Fehler angezeigt. Diese Nachricht enthält normalerweise Informationen, die für den Skriptentwickler nützlich sind (eine Fehlermeldung von einer Google API, z. B. "Die Koordinaten oder Dimensionen des Bereichs sind ungültig."), Aber nicht unbedingt für den Tabellenkalkulator (eine echte Übersetzung dessen, was sie tut kann tun, um es zu lösen).

Ich habe die UiApp-API-Dokumentation durchsucht, aber keine Lösung gefunden Anpassen dieser Nachricht Ist es möglich, Ihre eigene Fehlermeldung zu werfen?

    
Ralf Haring 18.06.2013, 22:34
quelle

3 Antworten

18

Wie bei jedem Javascript können Sie Folgendes verwenden:

%Vor%

Es gibt zahlreiche Beispiele , die verwendet werden, auch wenn die Fragen sind nicht genau deine.

Meine persönliche Meinung ist, dass es am besten ist, wenn Sie die Eingabe für Ihre Funktion überprüfen und Fehler (wie diese Antwort ) auslösen >), anstatt die Fehler von Serviceaufrufen zu erfassen. Eine geeignete Zeit, um try..catch zu verwenden, wäre, wenn Sie keine praktische Möglichkeit haben, Parameter zu validieren, wie in diese Antwort .

    
Mogsdad 19.06.2013, 00:18
quelle
2

Dies ist der beste Weg, um Daten aus Ihrem Skript in Ihre Fehlermeldung zu übertragen. Richten Sie zuerst ein globales Variablenobjekt ein, um Ihre Daten zu speichern, die Sie für die Fehlerbehandlung benötigen. Speichern Sie dann Daten in diesem Objekt im Abschnitt try{} der jeweiligen Funktion. Schließlich rufen Sie in catch(e) eine Funktion errHandler auf, die das Fehlerdatenobjekt weitergibt. Siehe den folgenden Code: code.gs .

%Vor%     
user3219703 16.09.2015 18:48
quelle
-1

Sie können versuchen, einen Blick auf die Base-Klasse zu werfen, die Ihnen die Möglichkeit gibt, eine Warnmeldung oder andere Dialoge hinzuzufügen, um mit dem Benutzer Ihrer Anwendung zu interagieren, wenn er an eine Tabelle gebunden ist (zB msgBox ()). Verwenden Sie für eine DocumentApp die UI-Klasse, um mit ihrer Schnittstelle zu interagieren.

Ich habe es nie versucht, aber wenn Sie eine try ... catch Struktur mit einer throw-Anweisung verwenden, kann es auch funktionieren.

Prost

Nicolas

    
user2043891 19.06.2013 00:14
quelle