Can';catch javascript中的t access变量

Can';catch javascript中的t access变量,javascript,google-apps-script,scope,Javascript,Google Apps Script,Scope,我在函数中声明了一个变量aliasError,并尝试在该变量中存储使用try/catch块捕获的错误值 但是,我无法访问catch块中的变量。我可以在try块和try/catch块之外访问它 不确定这是javascript还是google应用程序脚本问题 以下是一个片段: function onFormSubmit(e) { //...........// var aliasError; // VARIABLE DECLARED // CREATE UPDATES IN

我在函数中声明了一个变量
aliasError
,并尝试在该变量中存储使用try/catch块捕获的错误值

但是,我无法访问catch块中的变量。我可以在
try
块和try/catch块之外访问它

不确定这是javascript还是google应用程序脚本问题

以下是一个片段:

function onFormSubmit(e)
{
  //...........//
  var aliasError;     // VARIABLE DECLARED


  // CREATE UPDATES IN GMAIL
  // 1. ALIASES
  // do we need a new account and if not, then the latest account
  var conciergeStatus = getConcierge();
  var newAccountNeeded;
  parseInt(conciergeStatus[0]) == 1 ? newAccountNeeded = true : newAccountNeeded = false;
  if(newAccountNeeded)
  {
    //..........//
  }
  else
  {
      var conciergeAccount = conciergeStatus[2];
      conciergeAccLog = conciergeAccount;
      Logger.log("*******************UPDATING CONCIERGE ACCOUNT************************");
      Logger.log(conciergeAccount["name"]);
      var aliases = conciergeAccount["aliases"];
      var userEmail = conciergeAccount["primaryEmail"];
      conciergeEmail = userEmail;
      var alias = {
      alias: responseMap["Alias email"]
      };
      Logger.log(userEmail);
      Logger.log(alias);


      aliasError = "No error"; // VARIABLE ACCESSED SUCCESSFULLY
      try
      {
      aliasError = "No error"; // VARIABLE ACCESSED SUCCESSFULLY
      AdminDirectory.Users.Aliases.insert(alias, userEmail);
      }
      catch(err)
      {
      aliasError = err; // VARIABLE ACCESS FAILED
      }
      Logger.log(aliases);
  }
    //..............//
}

如何克服此问题?

如果您要尝试用console.log(aliasError)替换catch语句中的赋值行以更改颜色?原因以下代码将显示变量在catch语句中非常容易访问:

function x(){
var aliasError = 10;
     try
      {
      aliasError = "No error"; // VARIABLE ACCESSED SUCCESSFULLY
      xx=yy;
      }
      catch(err)
      {
      aliasError = err; // VARIABLE ACCESS FAILED
      }
console.log(aliasError)
}

x();

在编辑器中拥有状态解析不是一项简单的任务。我从未使用过谷歌编辑器,但我不会100%信任编辑器的代码分析。

事实上,你不能。这不是google应用程序脚本编辑器或运行时问题,而是Javascript规范的一部分。catch块创建了一个新的变量声明环境(一个新范围),其中catch块中唯一可访问的变量是作为catch参数的异常本身。有关完整的ECMA规范,请参见此处

是否确定该规范被拒绝。您是否尝试分配“error here”之类的值,并查看是否设置了该值?如何在catch块之后检查此变量的内容?Google脚本编辑器会根据变量的状态更改其颜色。新声明为深蓝色,有效变量访问为浅蓝色,黑色表示未定义的变量<代码>别名错误在
try
catch
外部为浅蓝色,但在
catch
内部为黑色。