Блок Catch не вызывается из внутреннего цикла в оркестровке BizTalk

#loops #exception #try-catch #biztalk-2013 #orchestration

#циклы #исключение #попробуйте-catch #biztalk-2013 #оркестровка

Вопрос:

В моей оркестровке BizTalk у меня есть 2 цикла, один внутренний и один внешний. Когда во внешнем цикле возникает исключение, управление переходит к блоку исключений catch (который перехватывает System.Исключение), но если во внутреннем цикле происходит какое-либо исключение, блок catch не вызывается. Вся моя обработка происходит внутри внутреннего цикла, но я не могу поймать ни одного исключения.

Средство просмотра событий консоли BizTalk, хотя и зафиксировало исключение из внутреннего цикла, (Microsoft.ServiceModel.Каналы.Common.XmlReaderParsingException) но блок catch не вызывался.

Кто-нибудь может помочь в том, как обработать исключение внутри внутреннего цикла.

Ответ №1:

Если приостановлено с необработанным исключением, то вы, вероятно, пытаетесь перехватить его с помощью System.SystemException не System.Exception , так как System.SystemException не будет перехватывать XLang исключения. Убедитесь, что вы используете System.SystemException ,

Вы также можете добавить еще один блок catch в область видимости и создать это одно общее исключение catch, которое должно охватывать все.

Комментарии:

1. Привет @Dijkgraaf, я использую System. Исключение только во внешней области, но все же исключение XLANg из внутреннего цикла не перехватывается. Я не использую System. SystemException. Пожалуйста, предложите. Просто для теста я намеренно создал исключение в коде внешнего цикла, и был вызван блок catch, но когда во внутреннем цикле происходит исключение, даже System. Блок catch исключения не вызывается. Пожалуйста, предложите.

2. @PoonamChandak Должно быть что-то еще, поскольку простое наличие двух циклов не приведет к этому. У вас также есть область вокруг внутреннего цикла? Если да, есть ли у него блок catch?

3. ПРИВЕТ .. @Dijkgraaf.. Сейчас у меня только один цикл. и только 1 область в начале и один обработчик catch, перехватывающий систему. Объект исключения, но все же поток оркестровки вообще не переходит к блоку catch. Можете ли вы уточнить? нужно ли мне переустановить библиотеки DLL в GAC? или что-то еще может быть проблемой. Я установил библиотеки DLL ранее с помощью консоли администратора. Пожалуйста, предложите.

4. @PoonamChandak Вам не следует вручную устанавливать DLL в GAC. Вы должны развертываться из Visual Studio в пакетах Dev и MSI во всех других средах. Да, попробуйте повторно развернуть все ваше решение.