Составители:
соответствующий производный класс). Однако не следует забывать, что метод COb-
ject::IsKindOf() применим только к тем классам, которые были объявлены с помощью
макрокоманды IMPLEMENT_DYNAMIC, разрешающей динамическую проверку типов.
При объявлении всех классов, производных от класса CException, также необходимо ис-
пользовать эту макрокоманду.
Для получения (подробной информации об исключении любого из классов, произ-
водных от CException, можно воспользоваться функциями GetErrorMessage() и ReportEr-
ror().
В ответ на исключение система обычно пытается сначала запустить фильтр исклю-
чений, а затем - подпрограмму-обработчик. Однако вы можете реализовать обработку
нескольких различных исключений, организовав последовательность блоков catch, как
показано в следующем фрагменте:
try
{
... // блок программы, порождающий исключение
}
catch ( CMemoryException *e ) // исключение типа нехватки памяти
{
...
}
catch ( CFileException *e ) // исключение при выполнении операции с файлом
{
...
}
catch( CArchiveException *e ) // исключение при выполнении
{ //архивации/сериализации
...
}
catch( CNotSupportedException *е )// отклик на запрос
{ // сервиса, который не поддерживается
...
}
catch( CResourceException *e ) // исключение при выделении ресурса
{
...
}
catch( CDaoException *e ) // исключение при обращении к базе данных (DАО-классы)
{
...
} catch ( CDBException *e ) // исключение при обращении к базе данных (ODBC-классы)
{
...
}
catch( COleException *e ) // OLE-исключения
{
...
}
catch ( COleDispatchException *e ) // исключение при выполнении диспетчеризации
// (OLE-автоматизации)
89
соответствующий производный класс). Однако не следует забывать, что метод COb-
ject::IsKindOf() применим только к тем классам, которые были объявлены с помощью
макрокоманды IMPLEMENT_DYNAMIC, разрешающей динамическую проверку типов.
При объявлении всех классов, производных от класса CException, также необходимо ис-
пользовать эту макрокоманду.
Для получения (подробной информации об исключении любого из классов, произ-
водных от CException, можно воспользоваться функциями GetErrorMessage() и ReportEr-
ror().
В ответ на исключение система обычно пытается сначала запустить фильтр исклю-
чений, а затем - подпрограмму-обработчик. Однако вы можете реализовать обработку
нескольких различных исключений, организовав последовательность блоков catch, как
показано в следующем фрагменте:
try
{
... // блок программы, порождающий исключение
}
catch ( CMemoryException *e ) // исключение типа нехватки памяти
{
...
}
catch ( CFileException *e ) // исключение при выполнении операции с файлом
{
...
}
catch( CArchiveException *e ) // исключение при выполнении
{ //архивации/сериализации
...
}
catch( CNotSupportedException *е )// отклик на запрос
{ // сервиса, который не поддерживается
...
}
catch( CResourceException *e ) // исключение при выделении ресурса
{
...
}
catch( CDaoException *e ) // исключение при обращении к базе данных (DАО-классы)
{
...
} catch ( CDBException *e ) // исключение при обращении к базе данных (ODBC-классы)
{
...
}
catch( COleException *e ) // OLE-исключения
{
...
}
catch ( COleDispatchException *e ) // исключение при выполнении диспетчеризации
// (OLE-автоматизации)
89
Страницы
- « первая
- ‹ предыдущая
- …
- 85
- 86
- 87
- 88
- 89
- …
- следующая ›
- последняя »
