Google apps script 有没有办法在执行过程中停止自动运行的脚本?
首先,我是一个木匠,不是一个开发者 我正在使用谷歌表单自动评估工作。我有一个脚本,将答案格式化为pdf格式,以便将其发送给我的主要客户以供批准。主功能由表单提交触发。我写的脚本可能不是正确的方法,但它如下Google apps script 有没有办法在执行过程中停止自动运行的脚本?,google-apps-script,Google Apps Script,首先,我是一个木匠,不是一个开发者 我正在使用谷歌表单自动评估工作。我有一个脚本,将答案格式化为pdf格式,以便将其发送给我的主要客户以供批准。主功能由表单提交触发。我写的脚本可能不是正确的方法,但它如下 function masterFunction() { aFunction(); bFunction(); cFunction(); ... }; function a(){ ... }; function b(){ ... };
function masterFunction() {
aFunction();
bFunction();
cFunction();
...
};
function a(){
...
};
function b(){
...
};
...
如果脚本在任何子函数中遇到错误,我希望将之前的工作保存到另一个文件中并进行清理,以便下一个表单响应可以运行。之后,我可以返回并更正问题,然后运行脚本的其余部分
我已经在代码中找到了捕捉这些错误的位置,例如空白字段或空值,或者我在表单上没有正确输入的东西,但不是脚本错误,我不关心这些问题,它会向我发送电子邮件提醒这些问题,但其他人可能会将这些PDF发送给客户,但看不到问题
是否有一种方法可以停止masterFunction。我发现的大部分内容都会停止子函数,如break或try,但这只会将其发送回主函数,主函数将继续并发送到下一个函数并运行到最后。一个选项是使用return语句,它允许您从函数返回值。当您调用return时,函数立即结束,并有选择地将值传递回父级,您可以对此进行检查 修改子函数以使用“return”语句,并在成功时返回“true”值,在失败时返回“false”,然后检查每个函数的结果: 在功能上:
return false;
总的来说:
var a_result = aFunction();
if(!a_result){
/*... optionally do "failed" tasks here ..*/
return //exit master function
}
另一个选项是抛出异常,然后可以在主函数中捕获该异常。如果您不关心哪个子函数失败,那么引发异常可能会更好
儿童:
throw "missing name!"
总的来说:
function masterFunction(){
try{
aFunction();
bFunction();
...
}catch(e){
logger.log('Caught error '+e);
}
}
非常感谢。在昨晚发布之后,我想到了一个类似的想法,但还没有尝试过。我将把函数放在一个数组中,并在返回值上使用if语句对它们进行循环,然后发送到一个函数来完成剩下的工作。非常感谢你。我会用你发布的内容作为起点。