Les exceptions non gérées dans Google Apps Script
J'ai créé un Web App avec accès à mes données de feuille de calcul. Je peux les attraper et de les consigner les exceptions danstry..catch
, mais:
- est-il possible d'attraper toutes les exceptions non gérées, comme les navigateurs
window.onerror
? - puis-je afficher les journaux d'exceptions non gérées quelque part?
- par des exceptions comme le "Service invoqué trop de fois" mon application est même pas prise en compte, alors ici je ne peut certainement pas gérer les exceptions. Est-il des journaux avec ce genre d'exceptions?
Ce sont donc des questions simples, de sorte que je suis un peu confus de leur demander, mais après des heures de recherche je ne pouvais pas trouver les réponses.
Vous en remercie d'avance.
- Le "Service invoqué trop de fois" l'erreur est une erreur de serveur. Êtes-vous à l'aide de
try{ .. } catch(e) { sendTheDeveloperTheError(e.message) }
dans le .gs code serveur? Vous devriez avoir une fonction de script qui ne fait rien, mais de vous informer sur les erreurs de serveur. Vous pouvez faire quelque chose comme e-mail à vous-même avec l'erreur, ou journal de l'erreur à une feuille de calcul que vous possédez. Les erreurs dans le navigateur peut être attrapé, puis envoyé au serveur avecgoogle.script.run.sendClientError(e)
Alors vous avez besoin d'une fonctionsendClientError()
dans un fichier de script. - où puis-je voir si et à quel serveur des erreurs ont eu lieu pour mon script? Et oui, j'utilise le
try..catch
blocs, mais ça n'aide pas pour les erreurs de serveur. Et aussi, parfois, je ne peux pas oublier certainstry
consolidés, ou à uncatch
bloc uncaught exception peut se produire, mais nous cannt log that uncaught exceptions. But you are right, on client side we receive all the exceptions, and can send the errors back. But do we have to use the log script within other web-app/other account, while when we reached the google quoatas, then we cann
t accéder à ce serveur enregistreur également. Qu'en pensez-vous? - Il serait très bien, si il y avait un moyen de traiter les erreurs sans avoir à utiliser
try . . . catch
mais je ne sais pas, de toute façon c'est possible. Si c'est ce que vous demandez. Vous pouvez automatiquement la capture des erreurs de serveur qui s'est passé depuis à l'aide d'ungoogle.script.run.yourScriptFunctionName()
appel du client à l'aide dewithFailureHandler(name_of_client_function)
Lien vers google Apps Script de documentation je ne sais toujours pas exactement ce que vous utilisez? Apps Script Web App? Les feuilles de l'API?
Vous devez vous connecter pour publier un commentaire.
Ce sont des questions qui sont abordées actuellement. Dans les Apps Script Programme d'Accès anticipé de deux nouveaux ajouts que de gérer ces cas. La première est l'intégration native avec le stackdriver la journalisation et l'ajout de
google.script.run.withLogger()
.Tout d'abord pour l'instant, vous devez demander de l'EAP:
Stackdriver D'Enregistrement:
Pour vous connecter à stackdriver la
console
objet a été ajouté à côté serveur.code.gs
Découvrez les docs pour toutes les méthodes de
console
.Exemple de la doc:
En outre, vous pouvez également vérifier
Log Exceptions
dans les scripts de propriétés. Cela va générer une stackdriver entrée à chaque fois une erreur se produit dans votre script.Récupération d'erreur dans une application web
De récupérer, dans une application web à partir d'un cas d'échec, vous avez accès à la
withFailureHandler()
méthode trouvée dans l'google.script.run
objet. Avec cela, vous pouvez enregistrer un rappel dans le cas où votre script frappe une exception.Documentation complète peut être trouvée à:
Si vous faites du côté serveur vérifie avec
try...catch
vous est peut-être une exception, mais normalement la manipulation. Dans ce cas withFailureHandler() ne s'exécute pas et onSuccessHandler() probablement pas le meilleur endroit pour gérer les erreurs. Dans le cadre du PAE, il existe désormais unewithLogger
méthode pourgoogle.script.run
. Pour l'instant il n'y pas de documentation pourgoogle.script.run.withLogger()
. Je l'ai trouvé en fouillant dans devtools.withLogger()
vous permet de vous inscrire à une fonction de rappel quand jamais un stackdriver entrée est créée. Ceci est particulièrement utile lorsque vous avezlog exceptions
vérifié dans votre script propriétés. Dans ce sens, c'est un peu commewithFailureHandler()
mais il peut être déclenché par un stackdriver entrée vous ajouter si le serveur-côtéconsole
objet.index.html
code.gs