添加更多代码后,Google Apps脚本会随机生成错误消息“发生意外错误”

时间:2013-01-25 19:04:56

标签: google-apps-script

我编写了一个Google Apps脚本UiApp应用程序,其中包含近1000行代码和相当数量的处理程序和回调。该应用程序工作正常,但随着代码的增长,应用程序突然收到了很多“意外错误发生”的消息。应用程序加载时会出现错误消息并且是间歇性的。我可以尝试一分钟的应用程序,并得到错误。然后刷新,错误就消失了。再次刷新,错误可能会再次出现。它们出现在测试和生产网址中。

因为错误是随机的,所以我无法将其追踪到任何特定的代码行,是否存在可能导致此问题的处理限制? Google Apps是否对线条,小部件或处理程序有限制?如果是这样,那些是否会导致这些错误,是否有办法增加限制?有什么办法可以追踪这个问题吗?

2 个答案:

答案 0 :(得分:1)

是的,Google Apps脚本引擎在您可以进行的回调次数,执行脚本所花费的时间等方面存在各种限制。我们的经验是您应该保留代码尽可能小,并模块化可能需要很长时间的事情。如果您将代码与电子表格结合使用,请将电子表格用作存储中间步骤结果的容器,并将代码分解为多个脚本,这些脚本会在完成后相互调用。它会使您的代码更复杂,但它可以更可靠地工作。如果您的代码正在执行Google Apps脚本从未设计过的内容,请将代码移到外部,移动到Google App Engine或其他容器(特别是如果您需要服务器端JavaScript)。

答案 1 :(得分:1)

通常,“意外错误发生”消息归因于您的处理程序尝试使用尚未创建并添加到您的应用程序的元素。例如,如果您尝试在某个功能中的代码中很可能存在的面板上运行处理程序,那么如果尚未创建面板,则会出现意外错误。

按照代码中的操作和函数流程查看某些内容是否尝试在某个函数中可能存在的元素上执行,但尚未添加到您的应用中。

此外,如果您正在尝试处理具有Id通过“.forTargets(app.getElementById('myElement'))”的元素,请仔细检查您的Id的名称。如果名称错误,您也会收到该错误。

挤压臭虫可能是一项耗时,令人毛骨悚然的体验!当您的代码开始变成意大利面条代码时,这些错误往往会突然出现。您可能需要返回并重新设计并重新编写以清理内容。