2012-12-14 2 views
6

Я хотел бы, чтобы прекратить публикацию, когда определенное условие существует в TRIDION 2011. В шаблоне Razor я стараюсь:Остановка Tridion публикации с исключениями

throw new Exception("Exceptional condition!"); 

Но в Template Builder он говорит «успешным».

Любые идеи?

В шаблонах VBScript мы бы выполнили Err.Raise, и это вернет ошибку в очередь публикации.

ответ

9

В базовом коде посредника Razor Mediator определенно нет механизмов try/catch, ошибка в шаблоне должна быть на поверхности (как вы видите, с общими нулевыми ошибками ссылок, которые вы часто запускаете во время разбора!). Есть некоторые вещи, которые вы обязательно должны проверить:

  1. Является ли путь кода, за исключением того, что выполняется? Как предложил Барт, вы должны запустить его через Template Builder и посмотреть, есть ли там какие-либо полезные журналы. Бросьте свои собственные отладочные операторы, а также найдите путь прохождения кода.

  2. Является ли ваше исключение корректно отформатированным заявлением о бритве?

  3. Если его новый КТ, код шаблона страницы разрешает рендеринг вашего КТ?

Я просто настроить образец ТВВ следующим образом (и добавил TBB для шаблона компонента):

<div>Testing an Error</div> 
@{ throw new Exception("Exceptional condition"); } 

Запуск через Template Builder показал ошибку в окне Output. Предварительный просмотр страницы компонентом с использованием CT завершится с ошибкой и покажет ошибку. Публикация страницы показала статус «Сбой» как статус, при этом детали обработанных элементов отображали «Исключительное условие!». сообщение.

Надеюсь, что это поможет, если у вас все еще есть проблемы с этим, не стесняйтесь публиковать свой код, и я отлажу его дальше!

+0

Правильно. Код не был в блоке кода Razor @ {}. Стыдно ..... – robrtc

8

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

Есть довольно много попыток, блокировки блоков там (некоторые, вероятно, правильные и ожидаемые), большинство из них предупреждает о регистрации.

Вы получаете что-нибудь интересное в журнале шаблонов шаблонов? Если нет, я бы попытался загрузить код посредника Razor и отладить его во время запуска вашего шаблона, чтобы узнать, что улавливает ваше исключение, и если вы можете легко изменить это (хорошо, что это с открытым исходным кодом).