Unreacheable code - как устранить
От: dmitry_npi Россия  
Дата: 05.06.08 07:43
Оценка:
Компилятор (VC++8.0) выдает предупреждение C4702: unreacheable code в такого вида функциях:
BOOL CADORecordset::SetSort(LPCTSTR strCriteria)
{
    _ASSERT(IsOpen());

    try
    {
        m_pRecordset->PutSort(strCriteria);
        return TRUE;
    }
    catch(_com_error &e)
    {
        dump_com_error(e); // С4702
        return FALSE;
    }
}


(Функция — известная обертка над Recordset из ADO)
Почему он считает что секция catch недостижима? Ведь метод m_pRecordset->PutSort не объявлен ни как __declspec(nothrow), ни как throw()
и, конечно, не является extern "C" функцией.
Переменная m_pRecordset является экземпляром класса, сгенерированным директивой #import.
Такие предупреждения появляются только в RELEASE-конфигурации, в DEBUG их нет, хотя в обоих случаях стоит /W4 и /EHsc.
Атмосферная музыка — www.aventuel.net
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.