Google apps script 有没有办法在执行过程中停止自动运行的脚本?

Google apps script 有没有办法在执行过程中停止自动运行的脚本?,google-apps-script,Google Apps Script,首先,我是一个木匠,不是一个开发者 我正在使用谷歌表单自动评估工作。我有一个脚本,将答案格式化为pdf格式,以便将其发送给我的主要客户以供批准。主功能由表单提交触发。我写的脚本可能不是正确的方法,但它如下 function masterFunction() { aFunction(); bFunction(); cFunction(); ... }; function a(){ ... }; function b(){ ... };

首先,我是一个木匠,不是一个开发者

我正在使用谷歌表单自动评估工作。我有一个脚本,将答案格式化为pdf格式,以便将其发送给我的主要客户以供批准。主功能由表单提交触发。我写的脚本可能不是正确的方法,但它如下

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语句对它们进行循环,然后发送到一个函数来完成剩下的工作。非常感谢你。我会用你发布的内容作为起点。