예외: 예외 내용 검사
catch
블록의 인수는 거의 모든 데이터 형식일 수 있지만 MFC 함수는 클래스CException
에서 파생된 형식의 예외를 throw합니다. MFC 함수에서 throw된 예외를 catch하려면 인수가 개체에 대한 포인터CException
(또는 파생된 CException
개체(예: CMemoryException
)인 블록을 작성 catch
합니다. 예외의 정확한 형식에 따라 예외 개체의 데이터 멤버를 검사하여 예외의 특정 원인에 대한 정보를 수집할 수 있습니다.
예를 들어 형식에는 CFileException
파일 예외의 m_cause
원인을 지정하는 열거형 형식이 포함된 데이터 멤버가 있습니다. 가능한 반환 값의 몇 가지 예는 다음과 같습니다 CFileException::fileNotFound
CFileException::readOnly
.
다음 예제에서는 의 CFileException
내용을 검사 하는 방법을 보여 줍니다. 다른 예외 형식도 비슷하게 검사할 수 있습니다.
try
{
CFile file(_T("\\this_file_should_not_exist.dat"), CFile::modeRead);
}
catch (CFileException* theException)
{
if (theException->m_cause == CFileException::fileNotFound)
TRACE("File not found\n");
theException->Delete();
}
자세한 내용은 예외: 예외 및 예외에서 개체 해제: 예외 Catch 및 삭제를 참조하세요.