다음을 통해 공유


예외: 예외 내용 검사

catch 블록의 인수는 거의 모든 데이터 형식일 수 있지만 MFC 함수는 클래스CException에서 파생된 형식의 예외를 throw합니다. MFC 함수에서 throw된 예외를 잡으려면, 인수가 catch 객체에 대한 포인터(또는 CException에서 파생된 객체, 예: CException)인 CMemoryException 블록을 작성합니다. 예외의 정확한 형식에 따라 예외 개체의 데이터 멤버를 검사하여 예외의 특정 원인에 대한 정보를 수집할 수 있습니다.

예를 들어 형식에는 CFileException 파일 예외의 m_cause 원인을 지정하는 열거형 형식이 포함된 데이터 멤버가 있습니다. 가능한 반환 값의 몇 가지 예는 다음과 같습니다 CFileException::fileNotFoundCFileException::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();
}

자세한 내용은 예외: 예외에서 개체 해제예외: 잡기 및 삭제를 참조하세요.

참고하십시오

예외 처리