【问题标题】:What are the possible exceptions when using PropertiesService?使用 PropertiesService 时可能出现哪些异常?
【发布时间】:2021-12-08 11:20:42
【问题描述】:

我一直在阅读 Google AppScript 的 PropertiesService 文档。我一直在为我的插件使用以下代码:

var userProperties = PropertiesService.getUserProperties();

我想问一下这段代码是否需要一些异常处理。使用 PropertiesService 时处理异常的最佳方法是什么?

提前致谢。

【问题讨论】:

  • 请按照How to Ask 中的建议添加您的搜索工作的简要说明。附言相关12
  • 感谢您的评论@Rubén。我会记住这一点。您的第一个相关项目是对我的问题的一些回答。我认为我们将低于 500k 配额。但是看起来有可能在执行插件期间发生 PropertiesService-Exception。除了配额相关的问题,您是否看过任何与 PropertiesService 相关的异常相关的文档?谢谢。
  • edit 向其添加所有相关详细信息的问题(即如何使用属性服务、每次执行/天的读/写次数、属性数、最大属性大小总属性大小...),包括您的搜索工作的简要说明。

标签: google-apps-script exception


【解决方案1】:

异常处理示例:

var userProperties = PropertiesService.getUserProperties();
var myProperty = userProperties.getProperty('myNumber');
if(myProperty){
  myProperty = JSON.parse(myProperty) + 1;
}
else{
 myProperty = 1;
}
userProperties.setProperty('myNumber', JSON.stringify(myProperty))
  • 此代码块将存储在用户属性 myNumber 中的数字增加 1。

  • 第一次,当属性 myNumber 尚不存在时 - 它通过将其设置为 1 并将其存储在 setProperty() 中来创建它

  • 如果属性已经存在 - 输入if 语句并且属性(始终存储为字符串)可以作为数字进行解析和处理

更新

为了完整起见,包括来自 cmets 的信息。

您可以通过以下方式处理带有脚本属性的异常:

try{
  var userProperties = PropertiesService.getUserProperties();
  var myProperty = userProperties.getProperty('myNumber');
  if(myProperty){
    myProperty = JSON.parse(myProperty) + 1;
  }
  else{
   myProperty = 1;
  }
  userProperties.setProperty('myNumber', JSON.stringify(myProperty));
}
catch(error){
  console.log(error.stack);
}


【讨论】:

  • 感谢您的示例代码。我很抱歉这个不清楚的问题。但就像您的代码一样,我的代码不会使用“try-catch”来封装对“PropertiesService.getUserProperties()”的调用。该代码假定它永远不会产生异常。在没有尝试捕获的情况下继续进行是否安全?谢谢。
  • 只要有可能,如果您不需要抛出错误,if... elsetry... catch 更好。在这种特定情况下:如果一个属性不存在 - 它将是 undefined ,if 条件将评估为false,因此else 条件将被满足。完全不需要try...catch
  • @zigannotschka 谢谢。但是,如果您达到 PropertiesService 的 50k 每日配额会怎样?它不会产生异常吗?但只是结果未定义?再次感谢您。
  • 好的,您希望达到这个配额,那么您可能确实使用try...catch :-) 这就像将我的答案中的整个代码块粘贴到try 块中一样简单.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
相关资源
最近更新 更多