使用PropertiesService时可能出现哪些异常?

问题描述 投票:0回答:2

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

var userProperties = PropertiesService.getUserProperties();

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

提前致谢。

google-apps-script exception
2个回答
2
投票

异常处理示例:

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
    语句,并且属性(始终存储为字符串)可以作为数字进行解析和处理

更新

为了完整起见,包括评论中的信息。

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

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);
}



0
投票

调用 setProperty() 或 deleteProperty() 可能会引发数据存储异常,这将使您的脚本在没有 try-catch 处理的情况下失败,所以答案是否定的,不包装这些调用是不安全的。

getUserProperties() 可能不会执行您期望的操作(用户可能是匿名的,即未通过 Google 身份验证),如果您的脚本未绑定到文档,则 getDocumentProperties() 将返回 null,如果属性则 getProperty() 将返回 null未设置,但 TMK 和 getScriptProperties() 不会引发异常。

© www.soinside.com 2019 - 2024. All rights reserved.