다음을 통해 공유


MFC에서 처리 하는 예외

이 문서에서는 MFC에서 사용할 수 있는 예외 처리 메커니즘에 설명합니다.두 메커니즘을 사용할 수 있습니다.

  • MFC 버전 3.0에서에서 사용할 수 있으며 나중에 C++ 예외

  • MFC 예외 매크로, MFC 버전 1.0에서에서 사용할 수 있으며 나중에

MFC를 사용 하 여 새 응용 프로그램을 작성 하는 경우 C++ 메커니즘을 사용 해야 합니다.기존 응용 프로그램에 이미 해당 메커니즘을 광범위 하 게 사용 하는 경우 매크로 기반 메커니즘을 사용할 수 있습니다.

MFC 예외 매크로 대신 C++ 예외를 사용 하도록 기존 코드를 쉽게 변환할 수 있습니다.문서에서 코드와 지침을 수행 하기 위해 변환의 이점에 설명 예외: MFC 예외 매크로를 변환.

이미 MFC 예외 매크로 사용 하 여 응용 프로그램을 개발한 경우, 기존 코드에 이러한 매크로 사용 하 여 새 코드에서 C++ 예외를 사용 하는 동안 작업을 계속할 수 있습니다.문서 예외: 예외 매크로 버전 3.0의 변경 이렇게 하기 위한 지침을 제공 합니다.

[!참고]

C + + 예외 처리 코드를 사용 하려면 C++ 예외 처리 가능 코드 생성 페이지의 프로젝트의 C/C++ 폴더를 선택 속성 페이지(C++) 대화 상자나 /GX 컴파일러 옵션을 사용 합니다.기본값은 /gx –로, 예외 처리를 사용 하지 않도록 설정입니다.

이 문서에서는 다음 항목을 다룹니다.

  • 예외를 사용 하는 경우

  • MFC 예외 지원

  • 예외에 대 한 추가 정보

예외를 사용 하는 경우

프로그램 실행 중 함수를 호출할 때 세 가지 결과가 발생할 수 있습니다: 정상 실행, 잘못 된 실행 또는 비정상 실행 합니다.각 범주는 다음과 같습니다.

  • 일반 실행

    함수가 정상적으로 실행 하 고 반환할 수 있습니다.일부 함수는 결과 코드 함수의 결과 나타내는 호출자에 반환 합니다.결과 코드 함수를 엄격 하 게 정의 된 및 함수의 가능한 결과의 범위를 나타냅니다.결과 코드는 성공 또는 실패 여부를 나타낼 수 있습니다 나도 특정 종류의 기대의 정상적인 범위 내에 있는 실패를 나타낼 수 있습니다.예를 들어, 파일 상태 함수는 파일이 없음을 나타내는 코드를 반환할 수 있습니다.Note 많은 예상된 결과 중 하나는 결과 코드를 나타내므로 "오류 코드" 라는 용어가 사용 됩니다.

  • 잘못 된 실행

    호출자가 일부 잘못 함수에 인수를 전달 하는 하거나 함수를 호출 하는 잘못 된 컨텍스트에 있습니다.이 이런 오류가 발생 하 고 프로그램을 개발 하는 동안 어설션 검색 해야 합니다.(어설션에 대 한 자세한 내용은 다음을 참조 하십시오. 어설션.)

  • 비정상 실행

    비정상 실행 메모리 부족 또는 입출력 오류와 같은 프로그램의 제어를 벗어나는 조건 함수의 결과 영향을 주는 하는 경우가 포함 됩니다.비정상적인 상황을 포착 하 고 예외를 throw 하 여 처리 되어야 합니다.

예외를 사용 하 여 비정상 실행에 특히 적합 합니다.

MFC 예외 지원

직접 C++ 예외를 사용 하거나 MFC 예외 매크로 사용 여부, 사용할 CException 클래스 또는 CException-파생 개체 프레임 워크 또는 응용 프로그램에서 throw 될 수 있습니다.

다음 표에서 MFC가 제공 하는 미리 정의 된 예외를 보여 줍니다.

예외 클래스

의미

CMemoryException 클래스

메모리 부족

CFileException 클래스

파일 예외

CArchiveException 클래스

보관/Serialization 예외

CNotSupportedException 클래스

지원 되지 않는 서비스에 대 한 요청에 응답

CResourceException 클래스

Windows 리소스 할당 예외

CDaoException 클래스

데이터베이스 예외 (DAO 클래스)

CDBException 클래스

데이터베이스 예외 (ODBC 클래스)

COleException 클래스

OLE 예외

COleDispatchException 클래스

디스패치 (자동화) 예외

CUserException 클래스

사용자 메시지 상자와 경고 메시지를 표시 한 다음 제네릭 throw 되는 예외CException 클래스

[!참고]

MFC C++ 예외와 MFC 예외 매크로 모두 지원합니다.MFC 지원 하지 않습니다 직접 Windows NT 구조적 예외 처리기 (SEH)에서 설명한 것 처럼 구조적 예외 처리.

예외에 대 한 추가 정보

MFC 라이브러리를 사용 하 여 예외 처리를 위해 다음 문서에서 설명 합니다.

다음 기사 MFC 예외 매크로와 C++ 예외 키워드 비교와 사용자 코드를 조정 하는 방법에 대해 설명:

참고 항목

참조

C + + 예외 처리

기타 리소스

하지 i: 만드는 방법 나만의 사용자 지정 예외 클래스?