#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 во всех других средах. Да, попробуйте повторно развернуть все ваше решение.