脚本编辑器/文件

时间:2012-05-11 18:25:07

标签: google-apps-script google-apps-script-editor

我刚刚将1800行项目划分为电子表格脚本编辑器中的12个“文件”。我注意到Find函数只在活动文件中查找。

有没有做全球发现?

还与项目中的文件有关,当引发错误时,引用行号但不引用文件名。

有没有办法确定哪个文件包含导致错误的行?

由于 丹

2 个答案:

答案 0 :(得分:2)

无法进行全局查找。查找只会查看当前文件。我同意应该有一个可以横向整个项目的查找和替换,我在2011年9月在问题跟踪器中提交并回复:

http://code.google.com/p/google-apps-script-issues/issues/detail?id=822

请到那里为其投票并通知其在此问题上取得任何进展。

问题跟踪器中还提到了没有报告错误消息的文件名的问题:

http://code.google.com/p/google-apps-script-issues/issues/detail?id=747

答案 1 :(得分:2)

要确定导致错误的文件,您必须尝试捕获错误并解析堆栈跟踪。这是我的工作:

function yourCallingfunction() {
  try {
    //do your thing
  } catch(err) {
    stack = parseErr_(err)
    Logger.log(stack);
    throw stack;
  }
}

//Try to parse errors stacktrace into a nicer format
function parseErr_(e) {
  var ret;
  if( e !== undefined && e !== null && e.stack ) {
    ret = e.name +': '+e.message+' \nStacktrace: \n';
    var stack = e.stack.replace(/\n/g,'').match(/:\d+( \([^\)]+\))?/g);
    for( var i in stack )
      ret += stack[i].replace(/[\(\):]/g,'').split(/ /).reverse().join(':') + ' \n';
  } else
    ret = e;
  return ret;
}

关于全局查找,如果您的问题只是找到而不是替换,那么也有一个解决方法。看看这个:

function showMe() {
  for( var i in this )
    Logger.log(this[i].toString());
}

但不是这个是实际的解决方案。您应该为@ScampMichael

链接的问题加注星标