Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Google Apps脚本中循环,处理错误,致命错误,停止脚本,循环停止_Javascript_Loops_For Loop_Google Apps Script - Fatal编程技术网

Javascript 在Google Apps脚本中循环,处理错误,致命错误,停止脚本,循环停止

Javascript 在Google Apps脚本中循环,处理错误,致命错误,停止脚本,循环停止,javascript,loops,for-loop,google-apps-script,Javascript,Loops,For Loop,Google Apps Script,我正在使用谷歌应用程序脚本 我有一个谷歌表,其中第1列有120个域名(120行),我需要在第7列将这些域名的状态写为“域名已验证”/“域名未验证” 我编写了一个脚本,它使用AdminDirectory API服务和AdminDirectory.get.domains.verified来检查域的状态,看看它们是否是google中经过验证的域 我下面的脚本工作得非常好,它检查每个域名行,并将状态设置为第7列中的任何一行,但是问题是,我的循环在到达任何尚未在Google中注册的域时立即停止,在日志中它

我正在使用谷歌应用程序脚本

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

我编写了一个脚本,它使用AdminDirectory API服务和AdminDirectory.get.domains.verified来检查域的状态,看看它们是否是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)
  }}
函数域列表(){
var ss=SpreadsheetApp.getActiveSpreadsheet()
var sheet=ss.getActiveSheet()
var data=sheet.getRange(“B2:B”).getValues()
var customer=“我的客户”

对于(i=0;i您可以尝试将部分代码放入
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
}

下面是做同样事情的另一种方法。我不清楚这是什么
if(status===({}))
,因此我认为将第三种选择的范围缩小一点可能会很有趣,因为如果期望它是布尔型的,并且它既不是真的也不是假的,那么我就不清楚还剩下什么。这可能需要一段时间,但我会尝试使用调试器来完成。但我不熟悉AdminDirectory,所以我有点奇怪在这里

function domainList() 
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var data = sheet.getRange("B2:B").getValues();
  var customer = "my_customer";
  var value = '';
  for(i=0; i<data.length; i++)
  {
    value = '';
    var dcheck = AdminDirectory.Domains.get(customer, data[i]);
    var status = dcheck.verified;
    switch(status)
    {
      case true:
        value = 'Domain Verified';
        break;
      case false:
        value = 'Domain Not Verified';
        break;
      default:
        value = 'unknown';    
    }
    Logger.log(status);
    var range = ss.getSheets()[0].getRange(2+i, 7)
    range.clear();
    range.setValue(value);
  }
}
函数域列表()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getActiveSheet();
var数据=sheet.getRange(“B2:B”).getValues();
var customer=“我的客户”;
var值=“”;
对于(i=0;i