昨晚我运行了一个脚本并检查了执行脚本窗口,脚本运行正常。后来我运行了另一个脚本并查看了执行脚本窗口,它显示了以前运行的脚本的脚本。我使用的是Chrome版本19.0.1084.52。我再次尝试使用最新版本的Firefox版本18.0.2并获得了相同的结果。
今天早上我决定清除Chrome中的缓存和Cookie,然后重试。当我加载Chrome时,它表示我的数据(浏览器历史记录,书签等)与我的Google帐户同步存在“同步”问题。我禁用了同步,清除了缓存和Cookie,并退出了Chrome。我重新加载了Chrome,登录并打开了我的脚本项目。出于好奇,我查看了执行记录窗口,它仍然有我昨晚成功运行的脚本的成绩单。当运行新脚本或注销时,应该清除成绩单/日志窗口吗?
我有一个GAS脚本项目,其中包含几个脚本文件Code.gs,Test.gs,RemoveLabels.gs,CreateLabels.gs。我想在我的脚本中使用名为CreateLabels.gs的try ... catch块。它将在Gmail中创建新标签。我创建了一个名为ErrorTest.gs的新脚本文件,因此我可以尝试使用Mozilla Developer Network Javascript Reference文档中的一个示例来抛出错误 - throw - JavaScript | MDN。
我将页面中的'扔一个对象'下的示例(它测试一个无效的月份号)复制到我的新脚本文件中,它按预期工作。
在我的脚本文件CreateLabels.gs中,我输入了以下代码:
function UserException(message) {
this.message = message;
this.name = "UserException";
};
在函数中我想抛出一个错误,我有:
function getDayTable() {
var myTable = new Object();
var values = g_ss.getSheetByName('Sheet2').getRange(2, 5, 2).getValues();
throw new UserException('Cannot access the spreadsheet');
values[0] [0] == "" ? myTable.year = 2005 : myTable.year = values[0] [0];
values[1] [0] == "" ? myTable.day = 1 : myTable.day = values [1] [0];
return myTable;
};
在我调用函数的代码中,我有:
try {
var dayTable = getDayTable();
//throws an error if dayTable cannot be retrieved
} catch (e) {
Logger.log('There has been an error!');
logMyErrors_(e); //pass exception object to error handler
}
我运行名为CreateLabels.gs的脚本,执行脚本窗口仍然具有名为ErrorTest.gs的上一个运行文件的脚本。试图在同一个项目下运行两个脚本文件,一个接一个导致问题吗?