2009-06-08 3 views
5

У меня есть область BizTalk (2006 R2) с частью «Исключение сбоя», в которой я поставил простую форму выражения для хранения сообщения об исключении в переменной оркестровки.Область BizTalk «Исключение сбоя» Общее сообщение об исключении

Проблема заключается в том, что если я выбираю тип исключения как «Общее исключение», то я не могу предоставить имя объекта исключения. Где я могу получить информацию об исключениях в этой ситуации?

Тогда я думал, что просто выберем тип исключения как System.Exception, но это невозможно. Я могу выбрать только конкретные типы исключений .NET.

Я делаю это неправильно или это так работает BizTalk?

ответ

8

Подумайте о том, чтобы поймать «общее исключение» как эквивалент выполнения «catch {}» блока в C# без объявления исключения. Итак, да, в этом случае невозможно получить сообщение об исключении, потому что возникшее исключение может (потенциально) быть объектом, не полученным из System.Exception.

Я не уверен, что вы имеете в виду, когда вы говорите, что вы не можете выбрать System.Exception в качестве типа исключения для catch. Вы можете это сделать, и я делал это несколько раз в прошлом. Черт, просто попробовал еще раз, и он там.

У вас возникли ошибки? Не отображается ли это в диалоговом окне выбора типа?

+0

Вы правы.Я нашел System.Exception. Просто выяснили, как работает диалог выбора. – lox

+0

Каждое исключение в .NET происходит из System.Exception. – Slugart

1

Мой друг, вы можете выбрать тип исключения «System.Exception», просто нажмите «mscorlib» на левой панели, затем щелкните на пространстве имен «Система», в правой части появится (по алфавиту) имена классов mscorlib, прокрутите список вниз, и вы увидите «System.Exception».

Я надеюсь, что поможет вам ...

Привета

0

Я столкнулся с этим же вопросом с другим выбором в окне свойств в оркестровке. Кажется, это ошибка в Visual Studios. При попытке выбрать сборку .NET я получаю сообщение об ошибке, указывающее, что свойство «недействительно». Мне нужно закрыть и снова открыть VS, и сообщение, похоже, исчезнет.

2

Разница между двумя методами заключается в том, что один дает вам дескриптор объекта исключения, а другой - нет. Вы должны выбрать «Общее исключение», когда вам не нужна информация, содержащаяся в объекте Exception. В противном случае вы можете выбрать класс System.Exception из mscorlib.

0

Для общего Исключение: В случае C#, это ведет себя как catch{}

Вы можете использовать его, когда вы не хотите, чтобы проверить объект исключения или просто хотите повторно бросить исключение.

System.Exception: behaves like catch(exception ex){} 

Все C# исключения наследуются от этого класса исключений. Он не охватывает все исключения в контексте biztalk.

Пожалуйста, просмотрите скриншоты для справки.

Screenshot 1

Screenshot 2

+0

Этот ответ не объясняет ничего, что не было включено в другие ответы ... –