Re: Помогите с проблемой обработок ошибок в COM
От: OlegO Россия http://www.mediachase.ru
Дата: 23.11.01 08:49
Оценка:
Здравствуйте AlexKn, Вы писали:

AK>STDMETHODIMP CTest::Init()

AK>{
AK> // TODO: Add your implementation code here
AK> Error("Error out");
AK> return E_FAIL;
AK>}
AK>Данный метод вызывает exception, когда я пытаюсь его вызвать из клиента
AK> CoInitialize(NULL);
AK> ITestPtr m_ITest;

AK> if(FAILED(m_ITest.CreateInstance(__uuidof(TestObj))))

AK> return -1;
AK> if(FAILED(m_ITest->Init()))
AK> return -1;

AK>Отладчик показывает, что exception вызывает строка


А что тебя смущает? по-моему все нормально, ты из метода возвращаешь E_FAIL
и используешь Ptr указатели, а они при получении ошибки генерят исключение.

Перехватывай исключение try, catch и впред:
...
try
{
     m_ITest->Init();
}
catch(_com_error &e)
{
   // если мы попали сюда, то была ошибка у "e" можешь запросить дополнителную информацию
}
...
С уважением, OlegO.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.