Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
16.02.2016
Размер:
1.52 Mб
Скачать

Пример:

void DoMyOperation()

{

// Выполняется операция X

AfxMessageBox( "Возникла ошибка выполнения операции X"); AfxThrowUserException( ); // Выполнен бросок исключения

}

BOOL TrySomething() 1

{ '

TRY

{

DoMyOperation(); // Вызываемая функция может бросить исключение

}

САТСЩ CUserException, е ) // Блок обработки исключения CUserException

{

return FALSE; // Пользователь уже получил сообщение об ошибке

AND_CATCH( CException, e )

{

// Сообщение пользователю при возникновении других типов исключений AfxMessageBox( "Возникла ошибка выполнения операции"); return FALSE;

END_CATCH

return TRUE; // Исключения не произошло }

Класс COleException

Объект COleException создается при ошибках в выполнении OLE-операций. Класс COleException включает общедоступную переменную класса, содержащую код состояния, включающий причину возникновения ошибки.

Для непосредственного броска данного исключения можно использо­вать глобальную функцию AfxThrowOleException.

Члены класса

static SCODE PASCAL Process( const CException* pAnyException );

Метод возвращает код состояния OLE.

Параметры: pAnyException - указатель на обрабатываемое исключение.

Переменные класса SCODE m_sc;

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

Класс COleDispatchException

Класс COleDispatchException предназначен для управления исключе- | ниями, возникающими при работе с OLE automation.

Для непосредственного броска данного исключения можно использо­вать глобальную функцию AfxThrowOleDispatchException.

Члены класса DWORD m_dwHelpContext;

Данная переменная класса указывает ID контекста файла справки, установленный методом AfxThrowOleDispatchException, выполнившем бро­сок исключения.

CString m_strDescription;

Переменная содержит текст описания ошибки (например: "Диск пере­полнен").

CString m_strHelpFile;

Переменная содержит имя файла справки приложения. CString m_strSource;

Переменная содержит имя приложения, бросившего данное исключение. WORD m_wCode;

Переменная содержит код ошибки, сформированный методом AfxThrowOleDispatchException, выполнившим бросок исключения.

Класс CinternetException

Класс CInternetException представляет исключения, возникающие от выполнения Internet-операций. Для непосредственного броска данного исключения можно использовать глобальную функцию AfxThrowInternetException.

Члены класса

CInternetException( DWORD dwError);

Конструктор класса. ,

Параметры:

dwError - ошибка, вызвавшая возникновение исключения. CInternetException::m_dwContext

Переменная класса m_dwContext содержит значение контекста, соответствующего Internet-операции, вызвавшей данное исключение. Первоначально идентификатор контекста специфицируется в классе

CInternetSession, а затем передается в производные классы ClnternetConnection и CInteraetFile. Разработчик может по своему усмотрению переопределить значение параметра dwContext. Этот па­раметр используется для всех операций данного объекта, а также оп­ределяет информацию о статусе операции, возвращаемую методом CInternetSession::OnStatusCallback.

CInternetException::m_dwError

Переменная содержит код ошибки. Это может быть как код системной ошибки, описанный в файле WINERROR.H, так и код ошибки из файла WININET.H.

Соседние файлы в папке VC++Баженова