javascript - 在 Google Apps 脚本中循环,处理错误, fatal error ,停止脚本,循环停止

标签 javascript loops for-loop google-apps-script

我正在使用 Google Apps 脚本

我有一个 Google 表格,其中第 1 列有 120 个域名(120 行),我需要在第 7 列中将这些域的状态写为“域已验证”/“域未验证”

我编写了一个脚本,该脚本使用管理目录 API 服务并使用 AdminDirectory.get.domains.verified 生成 bool 值(True = 域已验证,False = 域未验证)来检查域的状态以查看它们是否已验证在 Google 中验证的域。

我的下面的脚本工作得很好,它检查每个域名行并将状态设置为第 7 列中的任一行,但问题是,一旦涉及任何尚未在 Google 中注册的域,我的循环就会停止,在日志中显示“执行失败:找不到域。(第 36 行,文件“代码”)[总运行时间 1.412 秒]”

无论结果如何,我希望它运行到最后一行(第 120 行)。

我真正想要的是,无论结果如何,我的循环都应该覆盖所有 120 行,你能帮忙吗?

这是我的脚本-:

function domainList() {

  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getActiveSheet()
  var data = sheet.getRange("B2:B").getValues()
  var customer = "my_customer"

  for(i=0; i<data.length; i++){
    var dcheck = AdminDirectory.Domains.get(customer, data[i]);

    var status = dcheck.verified
    if(status === true){
      status = "Domain Verified"}
    else if(status === false){
    status = "Domain Not Verified"}
    else if(status === ({})){
      continue;
    }

    Logger.log(status)

    var range = ss.getSheets()[0].getRange(2+i, 7).clear()

 var range = ss.getSheets()[0].getRange(2+i, 7)
    range.setValue(status)
  }}

最佳答案

您可以尝试将一些代码放入 try/catch 中,如果出现错误,只需继续循环即可:

try {
  var dcheck = AdminDirectory.Domains.get(customer, data[i]);

  if (dcheck) {//Check for truthy value
    var status = dcheck.verified;
  } else {
    continue;//If "get" returned a falsy value then continue
  }
} catch(e) {
  continue;//If error continue looping
}

关于javascript - 在 Google Apps 脚本中循环,处理错误, fatal error ,停止脚本,循环停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42963162/

相关文章:

javascript - 如何使用 Javascript 和 Dom 克隆元素并在多个地方使用它

javascript - 如何在大型对象数组中乘以某些列/字段?

c - 简单的 Rand() 函数

java - 我是否可以测试 for 循环内的条件,如果满足,则忽略循环内的方法调用?

r - 如何将值存储在R中for循环内的向量中

c - 我的代码中某个测试用例的奇怪行为

javascript - Node 快速循环 session 数据

javascript从按钮点击停止音频

javascript - 无法在 mvc4 中使用 onclick 从 anchor 标记获取调用

java - 卡住的 While 循环 (Java)