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가 제공 하는 미리 정의 된 예외를 보여 줍니다.
예외 클래스 |
의미 |
---|---|
메모리 부족 |
|
파일 예외 |
|
보관/Serialization 예외 |
|
지원 되지 않는 서비스에 대 한 요청에 응답 |
|
Windows 리소스 할당 예외 |
|
데이터베이스 예외 (DAO 클래스) |
|
데이터베이스 예외 (ODBC 클래스) |
|
OLE 예외 |
|
디스패치 (자동화) 예외 |
|
사용자 메시지 상자와 경고 메시지를 표시 한 다음 제네릭 throw 되는 예외CException 클래스 |
[!참고]
MFC C++ 예외와 MFC 예외 매크로 모두 지원합니다.MFC 지원 하지 않습니다 직접 Windows NT 구조적 예외 처리기 (SEH)에서 설명한 것 처럼 구조적 예외 처리.
예외에 대 한 추가 정보
MFC 라이브러리를 사용 하 여 예외 처리를 위해 다음 문서에서 설명 합니다.
다음 기사 MFC 예외 매크로와 C++ 예외 키워드 비교와 사용자 코드를 조정 하는 방법에 대해 설명: