Система ColdFusion "пыталась использовать неопределенное значение" Null Pointers - PullRequest
1 голос
/ 22 сентября 2010

Таким образом, у меня есть эта ошибка на канале, который волшебным образом перестал работать без причины.

Я получаю ошибку «Система пыталась использовать неопределенное значение, которое обычно указывает на ошибку программирования, либо вВаш код или некоторый системный код.

Нулевые указатели - это еще одно имя для неопределенных значений. "

ОК, я смотрю нулевые указатели, и у Бена Наделя (да благословит его Бог) есть запись в блоге на датупеременные, которые на самом деле не являются датами.

Поэтому я проверяю даты, не являющиеся датами.Результат верен.Мои переменные даты являются датами.Хорошо.

Любые предложения о том, как отлаживать дальше ??Я вывел переменные, которые я вставляю, и все выглядит хорошо и совпадает.Лента обрабатывает около 55 записей, которые не будут иметь значения.Я также пробовал другие файлы каналов, чтобы проверить, не являлись ли они мошенническими данными, но это не помогло.

Cheers,

Leigh

Ответы [ 3 ]

1 голос
/ 22 сентября 2010

Я согласен с упаковкой вашего выходного кода в cftry / cfcatch, но кое-что, что может быть более полезным, - это использование cfdump для получения полной ошибки cfcatch, а также элемента в вашем фиде, который выдает ошибку.

В теге cfdump есть пара небольших используемых атрибутов, которые довольно полезны.формат и вывод.Формат позволит вам указать тип вывода текста или HTML.Вывод позволяет вам записать содержимое файла cfdump в файл.

<cfdump var="#cfcatch#" format="html" output="somepath\FeedCFCatch.html">
<cfdump var="#theFeedElement#" format="html" output="somepath\BrokenFeedElements.html">

Возможность увидеть фактический «сломанный» элемент должна четко показать, в чем проблема.Скорее всего, это атрибут, который не передается в конкретном элементе ленты.

0 голосов
/ 18 апреля 2011

Я столкнулся с этой ошибкой Coldfusion после переноса моего сервера с mysql 4 на mysql 5

Я собрал эту небольшую статью о том, как временно исправить ее, пока Adobe не выпустит оперативное исправление: Читать здесь

0 голосов
/ 22 сентября 2010

Вы должны убедиться, что все ваши переменные в порядке, а не только даты.

Простейшим способом является включение доступной переменной в проверку 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 намного лучше с этим.

...