2016-06-15 63 views
1

我有一個代碼來顯示上傳過程失敗時的消息。消息變量可以是結構體或字符串。我添加了代碼來檢查結果是一個結構還是一個簡單的值,但我仍然得到複雜的對象錯誤。有什麼我錯過了嗎?檢查isStruct或isSimpleValue後獲取錯誤複雜對象錯誤

這裏是我的代碼:

if (isStruct(result)) { 
    if(StructKeyExists(result, 'messages')){ 
     theMessage = result.messages; 
    } 
}else{ 
    if(IsSimpleValue(result)){ 
     theMessage = result; 
    } 
} 
FormMessage=getLang('CVLizerUploadFailed') & ' ' & getLang('PleaseContactYourAdmin') & ', ' & getLang('ErrorCode') & ' ' & theMessage; 

回答

3

首先讓我們簡化類似下面的代碼。它可以進一步簡化取決於先前的代碼,你需要尋找它。下面的代碼將檢查結果變量的類型,並根據類型設置theMessage變量的值。

if (isStruct(result) AND StructKeyExists(result, 'messages')) {    
     theMessage = result.messages;     
    } 
    else if (isSimpleValue(result){ 
     theMessage = result;     
    } 

您編寫的代碼或簡化代碼沒有任何問題。我不能肯定地說,如果最後一行代碼有錯誤,因爲我沒有足夠的信息。

使用writedump並放棄緊接在if條件代碼塊的下面和上面,在兩種情況下當結果是結構體和變量來檢查何時發生錯誤。它可以是代碼塊上方的最後一行或任何其他代碼行。

+0

我已經檢查了變量,事實證明,從函數返回的變量是一個結構,它應該是一個字符串(所以result.messages是一個結構,而不是一個字符串)。感謝您簡化我的代碼。 –