처리기 구문

이 섹션에서는 Microsoft C/C++ 최적화 컴파일러에서 구현된 구조적 예외 처리의 구문 및 사용에 대해 설명합니다. 다음 키워드는 컴파일러에서 구조적 예외 처리 메커니즘의 일부로 해석됩니다.

키워드 설명
__try 보호된 코드 본문을 시작합니다. __except 키워드와 함께 예외 처리기를 생성하거나 __finally 키워드와 함께 사용하여 종료 처리기를 생성하기 위해 사용됩니다.
__except 연결된 __try 블록 내에서 예외가 발생하는 경우에만 실행되는 코드 블록을 시작합니다.
__finally 제어 흐름이 연결된 __try 블록을 떠날 때마다 실행되는 코드 블록을 시작합니다.
__leave 비정상적인 종료 및 성능 저하를 일으키지 않는 __try 블록의 즉각적인 종료를 허용합니다.

 

또한, 컴파일러는 GetExceptionCode, GetExceptionInformationAbnormalTermination 함수를 키워드로 해석하며 적절한 예외 처리 구문 외부에서 사용하면 컴파일러 오류가 생성됩니다. 다음은 이러한 함수에 대한 간략한 설명입니다.

함수 설명
GetExceptionCode 예외 유형을 식별하는 코드를 반환합니다. 이 함수는 필터 식 또는 예외 처리기 블록 내에서만 호출할 수 있습니다.
GetExceptionInformation 컨텍스트 레코드 및 예외 레코드에 대한 포인터를 포함하는 EXCEPTION_POINTERS 구조체에 대한 포인터를 반환합니다. 이 함수는 예외 처리기의 필터 식 내에서만 호출할 수 있습니다.
AbnormalTermination 블록에서 마지막 문을 실행한 후 컨트롤 흐름이 연결된 __try 블록을 순차적으로 떠났는지 여부를 나타냅니다. 이 함수는 종료 처리기의 __finally 블록 내에서만 호출할 수 있습니다.