我刚刚在电子表格脚本编辑器中将我的 1800 行项目分成 12 个“文件”。我注意到 Find 功能只在活动文件中查找。
无论如何要进行全局查找吗?
也与项目中的文件有关,当引发错误时,将引用行号而不是文件名。
有没有办法确定哪个文件包含导致错误的行?
谢谢丹
我刚刚在电子表格脚本编辑器中将我的 1800 行项目分成 12 个“文件”。我注意到 Find 功能只在活动文件中查找。
无论如何要进行全局查找吗?
也与项目中的文件有关,当引发错误时,将引用行号而不是文件名。
有没有办法确定哪个文件包含导致错误的行?
谢谢丹
要确定导致错误的文件,您必须尝试捕获错误并解析堆栈跟踪。这是我所做的:
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 链接的问题加注星标
没有办法进行全局查找。Find 只会在当前文件中查找。我同意应该有一个贯穿整个项目的查找和替换,我于 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