You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web App中catch块return未执行,返回结果不符预期求排查

问题原因

你忽略了finally块的执行逻辑:无论try块是否抛出异常、catch块是否执行,finally块都会被执行。你的代码中,finally块里的return ContentService.createTextOutput('Ok!')会直接覆盖catch块中返回的'Error!',导致最终返回结果永远是'Ok!'。

修正后的代码

调整return语句的位置,仅在finally中释放锁,用变量存储返回结果:

function doGet(e) {
  const lock = LockService.getDocumentLock();
  let result;
  if (lock.tryLock(360000)) {
    try {
      var okgo = e.parameter.okgo;
      allmatches();
      result = ContentService.createTextOutput('Ok!');
    } catch (e) {
      result = ContentService.createTextOutput('Error!');
    } finally {
      lock.releaseLock();
    }
    return result;
  } else {
    return ContentService.createTextOutput('Timeout!');
  }
}

逻辑说明:用result变量存储要返回的内容,try块执行成功时设置为'Ok!',catch块捕获异常时设置为'Error!',finally块仅负责释放锁,最后统一返回result,这样就能根据执行情况返回对应结果。

内容的提问来源于stack exchange,提问作者Digital Farmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:27:26