将 Google Apps Script V8 分配给 null 会取消调试

Tac*_*ach 6 v8 google-apps-script google-apps-script-editor

对 null 的变量赋值会导致调试取消该行的执行。这是一个重现问题的测试脚本:

function myFunction() {
  var a = "Hallo";
  Logger.log("a=" + a);
  var b = null;
  Logger.log("b=" + b);
}
Run Code Online (Sandbox Code Playgroud)

调试时,此脚本执行在“var b = null;”行取消。日志输出为:

Mar 11, 2020, 8:52:49 PM    Info    a=Hallo
Mar 11, 2020, 8:52:54 PM    Info    Execution cancelled.
Run Code Online (Sandbox Code Playgroud)

在调试模式下越过该行并越过该行时,结果是相同的。但是,在后一种情况下,屏幕顶部会闪烁红色错误消息片刻,内容为:“很抱歉,发生服务器错误。请稍等,然后重试。”...等待并重试没有不同。[今天在杰夫在下面发表评论后再次尝试,只能通过在调试模式下跨过分配行来重新创建它]

正常运行脚本(不在调试中)时,它会成功完成。

Sil*_*ald 2

我找到了临时解决方法:

暂时(仅用于调试)删除var具有值的变量null

请注意:没有的变量var将成为全局变量 - 因此您可能会意外更改具有相同名称的全局变量的值。

但如果没有,var您将无法在调试器中看到您的变量。因此,另一种解决方法是使用语句测试变量if以查看调试器中的值:

改变:

  var b = null;
Run Code Online (Sandbox Code Playgroud)

暂时(仅用于调试):

  b = null;
  if (b==null){
    var b0='null';
  } else {
    var b0=b;
  }
Run Code Online (Sandbox Code Playgroud)

并观察b0调试器中的变量