在串行化延续谷歌Apps脚本意外的异常(Unexpected exception upon seri

2019-08-17 01:23发布

最近,我开始“序列化时延续意外的异常”尝试调试时,在电子表格谷歌Apps脚本得到错误。 错误似乎开始我创建的谷歌CLOUDSQL API连接后。 这个错误仍然甚至注释掉的JDBC对象构造之后发生。 看来,其他人有过这样的问题,需要一个谷歌技术来解决问题。

我已经找遍了所有的讨论板为解决这个问题,没有运气。 任何机会,有一个谷歌高科技在那里谁可以采取引擎盖给我下的样子? 我会后的代码,如果我能确定是什么行实际上是触发的错误。

编辑:

好吧,我想我已经发现了其中的错误正在发生。 似乎是

var response = UrlFetchApp.fetch(url + nextPage,oauth_options);

在while循环。 这里是整个函数的代码。

function retrieveEvents(endTimeMinimum, updatedAfter, orderBy){      
//var url = 'https://www.googleapis.com/calendar/v3/calendars/' + source_cal + '/events?key=' + api_key + "&futureevents=true&orderBy=updated&sortOrder=descending&updatedMin=" + last_sync_date_formated;
//var url = 'https://www.googleapis.com/calendar/v3/calendars/' + source_cal + '/events?key=' + api_key + "&orderBy=updated&sortOrder=descending&updatedMin=" + last_sync_date_formated;

   var url = 'https://www.googleapis.com/calendar/v3/calendars/' + source_cal + '/events?key=' + api_key + "&singleEvents=true";

   if ((orderBy != null) && (orderBy != "")){
     url += "&orderBy=" + orderBy;
   }
   else url += "&orderBy=updated";

   if ((updatedAfter != null) && (updatedAfter != "")){
     url += "&updatedMin=" + updatedAfter;
   }
   else url += "&updatedMin=" + last_sync_dateTime;


   //if no endTimeMinimum is specified, the current time will be used.
   if (endTimeMinimum ==  null || endTimeMinimum == ""){
     endTimeMinimum = date_rfc339("Today");
   }

   url += "&timeMin=" + endTimeMinimum;

   Logger.log("Request URL:" + url);

   var largeString = "";
   var events = new Array();
   var nextPage = "";
   var jsonObj

   while(true){
     var response = UrlFetchApp.fetch(url + nextPage,oauth_options);
     largeString = response.getContentText();

     if ((largeString != null) && (largeString != "")) {
       jsonObj = JSON.parse(largeString);  
     }
     if ('items' in jsonObj) events = events.concat(jsonObj.items);
     if ('nextPageToken' in jsonObj){
       nextPage = "&pageToken=" + jsonObj.nextPageToken;
       continue;
     }
     break;
   }

   if (events.length == 0)return null;
     return events;
 }

Answer 1:

OK,所以我能够使问题通过删除这是从主功能的try catch块内调用的函数里面的try catch块消失。 我不再是我看到从运行调试程序时“序列化时延续意外的异常”。

我希望我有什么原因导致这个错误,如何纠正它更坚实的答案。



Answer 2:

根据我的经验,这是不是造成该行(或任何其他)具体错误,但由于错误是一个循环内触发。 我还没有牵制了精确复制的原因,但气似乎失去了环路指针一定的误差。

我建议最好是您怀疑与一个try-catch是错误记录到记录器,并进入while循环内包导致错误的任何行。 循环指针则不会丢失,预期将进行调试。



文章来源: Unexpected exception upon serializing continuation Google Apps Script