2015-07-03 1 views
3

У меня есть запрос ColdFusion и я зацикливаю на выходе. Мне нужен try/catch, потому что могут быть случаи, когда вывод запроса не совсем соответствует информации, которую обрабатываю. Это ДОЛЖНО совпасть, но я считаю, что рассчитываю на это. Однако, если есть несоответствие, никакого вреда не делается. Я просто хочу пропустить эту транзакцию и продолжить. Я не хочу, чтобы ColdFusion выдавал ошибку, останавливал процесс и расстраивал моих пользователей.Удаляет ли cfcatch обработку?

В коде, подобном приведенному ниже, цикл продолжит обработку, если он попадает в предложение «catch»? В документации, которую я нашел, которая, по-видимому, не затрагивает этот вопрос, похоже, нет.

<cfoutput query = "xyz"> 
<cftry> 
    do something with this line of query output ... 
    <cfcatch type = "any"> 
    no action, just continue with the loop ... 
    </cfcatch> 
</cftry> 
</cfoutput> 
+4

Что произошло, когда вы попробовали? –

ответ

4

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

Все, что сказал, вероятно, есть более эффективные способы обнаружения проблем с кодом, чем попытки/уловки. Я не понимаю, что вы имеете в виду, когда говорите: «запрос [может не совпадать] полностью соответствует информации, которую я обрабатываю», поэтому я не могу представить более конкретный пример.

+0

Спасибо, Брэд, это именно то, что я хотел знать. И после того, как я опубликовал это, я подумал о способе обнаружения ошибки в этом случае до выполнения кода, который завершится с ошибкой. Поэтому я думаю, что я настроен. –

+0

Несколько моих коллег однажды сделали это намеренно. Они использовали ColdFusion для заполнения одной базы данных из другой и использовали эту технику, чтобы избежать нарушений первичного ключа. –

+0

* RE: способ обнаружения ошибки * Хорошо. Лучше не допускать ошибок, чем ловить их (когда это возможно). Кроме того, для уточнения, cfcatch обрабатывает только * восстанавливаемые исключения *. [Не все ошибки считаются возмещаемыми] (http://stackoverflow.com/a/14243560/104223). Серьезные/невосстановимые ошибки все еще выходят из строя до метода OnError или обработчика ошибок Site Wide. – Leigh