检查isStruct或isSimpleValue后,获取Error Complex对象错误

时间:2016-06-15 05:21:23

标签: coldfusion

如果上传过程失败,我有一个显示消息的代码。消息变量可以是结构或字符串。我添加了代码来检查结果是结构还是简单值,但我仍然遇到Complex对象错误。我有什么遗漏的吗?

这是我的代码:

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

1 个答案:

答案 0 :(得分:3)

首先让我们简化您的代码,如下所示。它可以根据早期代码进一步简化,您需要查找它。下面的代码将检查结果变量的类型,并根据类型,它将设置theMessage变量的值。

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

您编写的代码或简化代码没有任何问题。我不能肯定地说,如果最后一行代码有问题,因为我没有足够的信息。

在结果是结构和变量时,在if条件代码块的下方和上方使用 writedump并中止以检查何时发生错误。它是该代码块上方的最后一行或任何其他代码行。