gpt4 book ai didi

javascript - 无法访问catch javascript中的变量

转载 作者:行者123 更新时间:2023-11-30 15:48:54 25 4
gpt4 key购买 nike

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

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

不确定这是 javascript 还是 google-apps-script 问题。

这是一个片段:

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

我该如何克服这个问题?

最佳答案

实际上你不能。这不是谷歌应用程序脚本编辑器或运行时问题,它是 Javascript 规范的一部分。 catch block 创建一个新的变量声明环境(新范围),其中 catch block 内唯一可访问的变量是作为 catch 参数出现的异常本身。请在此处查看完整的 ECMA 规范 https://www.ecma-international.org/ecma-262/10.0/index.html#sec-variablestatements-in-catch-blocks

关于javascript - 无法访问catch javascript中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39666173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com