2016-09-23 97 views
0

我在函數中聲明瞭一個變量aliasError,並試圖存儲使用該變量中的try/catch塊捕獲的錯誤值。無法訪問內部變量javascript

但是我無法在catch塊中訪問該變量。儘管我可以在try區塊和try/catch區塊之外訪問它。

不知道這是一個JavaScript或谷歌應用程序腳本問題。

這裏是一個片段:

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

如何解決這個問題?

+0

你確定它被拒絕嗎?你有沒有試圖分配「錯誤在這裏」,看看是否設置了值?如何在catch塊之後檢查這個變量的內容? –

+0

Google腳本編輯器根據其狀態將分配顏色更改爲變量。新的聲明是深藍色的,有效的變量訪問是淺藍色,黑色是未定義的變量。 'aliasError'在'try'中是淺藍色,在catch外面是'catch',而在'catch'內是黑色。 –

回答

1

如果您將嘗試用catch.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%信任編輯器的代碼分析。