Как поймать RemotingException?

Я использую собственные вызовы pinvoke в своем приложении и внешние сборки в dll. Все работает нормально, пока часть программы не перестает работать и я получаю:

"Первое случайное исключение типа "System.Runtime.Remoting.RemotingException" произошло в mscorlib.dll"

несколько раз в окне вывода отладки. Выполнение продолжается, оно просто печатает это в окне вывода, когда я пытаюсь выполнить свой код. Как получить, где произошло исключение?


person blez    schedule 10.06.2011    source источник


Ответы (1)


Помните о разнице между исключениями первого и второго шансов. Исключением первого шанса является throw, но оно может быть перехвачено и обработано еще до того, как вы его увидите. Это нормально и не вызывает особого беспокойства.

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

Вас беспокоит только текст отладки, или он не работает? Если получится, я бы не беспокоился. Если это серьезное беспокойство, поймайте его в WinDebug и проанализируйте его, или вы можете сказать Visual Studio IDE, чтобы он останавливался на исключениях первого шанса.

person James Michael Hare    schedule 10.06.2011
comment
Это не работает. Мое приложение не падает, но работает неправильно. - person blez; 10.06.2011
comment
Вы должны были бы сказать отладчику, чтобы он прервался на RemotingException. Перейдите в раздел Отладка->Исключения и разверните Исключения общеязыковой среды выполнения, затем разверните System.Runtime.Remoting и установите флажок для Thrown on RemotingException. Затем запустите свой код в режиме отладки, и вы должны сломаться, как только будет выброшено RemotingException. Конечно, если проблема не в вашем коде напрямую, а является симптомом того, как ваш код использует фреймворк, который вызывает бросок фреймворка, может быть сложнее диагностировать. - person James Michael Hare; 10.06.2011