为什么 Google Apps 脚本中的 Try / Catch 会在调试模式下停止代码执行?

Why does Try / Catch in Google Apps Script stop code execution in debug mode?

我在 Google Sheet 中使用 Google Apps 脚本。我最近添加了一些代码,由于我试图访问锁定的数据而导致错误。我使用 Try / Catch 尝试了一些基本的错误捕获,当我 运行 我的代码时这工作正常,但在调试模式下,程序停止在有问题的行上执行。我是否使用了 Try / Catch 错误,或者我还缺少其他东西?

这是我的代码:

  for (var i=0;i<userGroups.length;i++) {
    try {
      var temp = userGroups[i].getUsers();
    } catch(error) {
      console.log(error); 
    }
    ...

注意:我没有使用 V8 运行time,因为它给我带来了很多问题。

如果您不使用 V8,调试器会在出现任何错误时停止执行(无论是否已处理),这是一种预期行为

  • 事实上,有些用户甚至 complain 表示在 V8 中没有维护此功能。
  • 如果您对调试器在处理错误时不停止执行感到满意 - 更改为 V8。

要解决 V8 调试器因 try catch 中的错误而暂停的问题,请将带有 try/catch 的代码放入库中,然后通过引用该库从脚本中调用该代码。这样 try catch 就发生在调试器的控制之外。