所以我在一个神奇地停止工作的Feed上出现了这个错误。
我得到的错误是“系统已尝试使用未定义的值,这通常表示编程错误,无论是在您的代码中还是在某些系统代码中。
Null Pointers是未定义值的另一个名称。 “
好的,我查找Null指针和Ben Nadel(上帝保佑他)有一篇关于日期变量的博客文章实际上并不是日期。
所以我测试的日期不是日期。结果为True。我的日期变量是日期。好。
有关如何进一步调试的任何建议?我输出了我正在插入的变量,所有看起来都很好并且匹配起来。该Feed正在处理大约55条记录,这些记录没有什么区别。我还尝试过其他Feed文件,看看是否是导致问题的流氓数据,但这也无效。
干杯,
利
答案 0 :(得分:1)
我同意将输出代码包装在cftry / cfcatch中,但可能更有用的一点是使用cfdump来获取完整的cfcatch错误以及Feed中抛出错误的元素。
cfdump标记上有一些很少使用的属性非常有用。格式和输出。 format允许您指定文本或html的输出类型。输出允许您将cfdump的内容写入文件。
<cfdump var="#cfcatch#" format="html" output="somepath\FeedCFCatch.html">
<cfdump var="#theFeedElement#" format="html" output="somepath\BrokenFeedElements.html">
能够看到实际的“破碎”元素应该能够明确地解决问题所在。机会是一个未在特定Feed元素中传递的属性。
答案 1 :(得分:0)
您应确保所有变量都正常,而不仅仅是日期。
最简单的方法是将访问的变量包装到isDefined("varname")
检查中。
其他解决方案是将每个迭代代码包装到try / catch中并记录细节,包括上下文和行。例如,非常详细的内容:
<cflog type="error" file="blahblah" text="#cfcatch.message# [#cfcatch.detail#], error of type #cfcatch.type# in #cfcatch.TagContext[1].template# at line #cfcatch.TagContext[1].line#:#cfcatch.TagContext[1].column#. Code context: #cfcatch.TagContext[1].codePrintPlain#" />
注意:Adobe ColdFusion中的行值可能不准确,但Railo在这方面要好得多。
答案 2 :(得分:0)
将服务器从mysql 4传输到mysql 5后,我遇到了这个Coldfusion错误
我已经整理了一篇关于如何临时修复它的小文章,直到Adobe发布了一个热修复:Read here