ODBC 클래스를 사용할 때의 예외상황 처리
페이지 정보
본문
ODBC 작업 중에 발생하는 예외 상황을 처리하고 싶습니다. 이 때 어떤 클래스를 사용할 수 있습니까 ?
CDBException를 사용하면 됩니다. 발생한 에러코드는 이 클래스의 m_nRetCode로 들어오고 그 에러에 대한 설명은 m_strError로 들어옵니다. 다음의 예제 코드는 ODBC 레코드셋을 오픈하는 과정에서 발생하는 에러를 처리하는 방법을 보여줍니다.
CRecordset* CSectionView::OnGetRecordset()
{
if ( m_pSet != NULL )
return m_pSet; // Recordset already allocated
m_pSet = new CSectionSet( NULL );
try // 에러의 가능성이 있는 코드를 try문 사이에 두고
{
m_pSet->Open( );
}
catch( CDBException* e ) // 에러 발생시 처리 코드를 catch문에 둔다.
{
AfxMessageBox( e->m_strError, MB_ICONEXCLAMATION );
// 에러가 발생한 레코드셋을 삭제한다.
delete m_pSet;
m_pSet = NULL;
e->Delete();
}
return m_pSet;
}
CDBException를 사용하면 됩니다. 발생한 에러코드는 이 클래스의 m_nRetCode로 들어오고 그 에러에 대한 설명은 m_strError로 들어옵니다. 다음의 예제 코드는 ODBC 레코드셋을 오픈하는 과정에서 발생하는 에러를 처리하는 방법을 보여줍니다.
CRecordset* CSectionView::OnGetRecordset()
{
if ( m_pSet != NULL )
return m_pSet; // Recordset already allocated
m_pSet = new CSectionSet( NULL );
try // 에러의 가능성이 있는 코드를 try문 사이에 두고
{
m_pSet->Open( );
}
catch( CDBException* e ) // 에러 발생시 처리 코드를 catch문에 둔다.
{
AfxMessageBox( e->m_strError, MB_ICONEXCLAMATION );
// 에러가 발생한 레코드셋을 삭제한다.
delete m_pSet;
m_pSet = NULL;
e->Delete();
}
return m_pSet;
}
댓글목록
등록된 댓글이 없습니다.