Перехват исключений COM в F # - PullRequest
2 голосов
/ 29 июля 2010

У меня есть некоторый код F #, который вызывает метод для объекта автоматизации COM. Иногда этот COM-объект вызывает исключение.

Я попытался обернуть вызовы в COM-объект в попытке ... с блоком:

  try
    do some COM stuff
  with _ ->
    Printf.printf "got an exn\r\n"

Но код обработки исключений вообще не вызывается, приложение просто умирает.

Сообщение, которое я вижу на консоли, обычно:

The message filter indicated that the application is busy. 
(Exception from HRESULT: 0x8001010A (RPC_E_SERVERCALL_RETRYLATER))

Как я могу перехватить исключение COM?

Ответы [ 2 ]

1 голос
/ 29 июля 2010

Хм, я думаю, это сработает ... Вы звоните из потока STA (UI)?У вас есть простой случай для репродукции (чем вы занимаетесь - автоматизация Visual Studio или что)?Он пахнет почти так, как будто вызов перенаправляется в другой фоновый поток, и у этого потока есть исключение без обработчика.

0 голосов
/ 29 июля 2010

Извините, моя ошибка.

Это был другой COM-вызов, который вызывал ошибку, и, в конце концов, другой with-обработчик перехватывал ошибку.

Так что попробуйте ... с делает работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...