我在应用程序关闭时有类型EVariantBadVarTypeError的例外。
我想自己调试我的应用程序,但Documentation对我来说并不是那么清楚,我不知道我应该在代码中查找哪种错误。
EVariantBadVarTypeError 是变体类型的异常类 错误。
变种操作时会引发EVariantBadVarTypeError 由于某个值不是有效的变体类型而失败。
有人能告诉我一个更明确的解释和一个导致这种例外的例子吗?特别是,我不知道哪些值不是"有效的变体类型"。
答案 0 :(得分:4)
在Windows上,Variant
和OleVariant
在内部使用COM Automation functions进行各种VARIANT
操作。当其中一个EVariantBadVarTypeError
函数(如VariantCopy()
,VariantClear()
,VariantChangeTypeEx()
,VarI4FromStr()
等)失败且VARIANT
时,会引发vt
3}}错误:
输入参数的变体类型无效。
这意味着变体的{{1}}字段指定的数据类型与正在执行的操作不兼容。
这解释了异常,但为什么在您的应用中引发。如果没有更多关于代码在引发异常时所做的事情的详细信息,堆栈跟踪看起来是什么导致引发异常等,那么这里的任何人都无法诊断实际发生的事情或如何解决它。您必须调试代码才能弄明白。
答案 1 :(得分:1)
有效的变体类型string,int,real等。其他任何东西,如对象,都不是有效的变体。更多信息:
http://docwiki.embarcadero.com/RADStudio/Seattle/en/Variant_Types