我正在使用 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/