처리기 구문
이 섹션에서는 Microsoft C/C++ 최적화 컴파일러에서 구현된 구조적 예외 처리의 구문 및 사용에 대해 설명합니다. 다음 키워드는 컴파일러에서 구조적 예외 처리 메커니즘의 일부로 해석됩니다.
키워드 | 설명 |
---|---|
__try | 보호된 코드 본문을 시작합니다. __except 키워드와 함께 예외 처리기를 생성하거나 __finally 키워드와 함께 사용하여 종료 처리기를 생성하기 위해 사용됩니다. |
__except | 연결된 __try 블록 내에서 예외가 발생하는 경우에만 실행되는 코드 블록을 시작합니다. |
__finally | 제어 흐름이 연결된 __try 블록을 떠날 때마다 실행되는 코드 블록을 시작합니다. |
__leave | 비정상적인 종료 및 성능 저하를 일으키지 않는 __try 블록의 즉각적인 종료를 허용합니다. |
또한, 컴파일러는 GetExceptionCode, GetExceptionInformation 및 AbnormalTermination 함수를 키워드로 해석하며 적절한 예외 처리 구문 외부에서 사용하면 컴파일러 오류가 생성됩니다. 다음은 이러한 함수에 대한 간략한 설명입니다.
함수 | 설명 |
---|---|
GetExceptionCode | 예외 유형을 식별하는 코드를 반환합니다. 이 함수는 필터 식 또는 예외 처리기 블록 내에서만 호출할 수 있습니다. |
GetExceptionInformation | 컨텍스트 레코드 및 예외 레코드에 대한 포인터를 포함하는 EXCEPTION_POINTERS 구조체에 대한 포인터를 반환합니다. 이 함수는 예외 처리기의 필터 식 내에서만 호출할 수 있습니다. |
AbnormalTermination | 블록에서 마지막 문을 실행한 후 컨트롤 흐름이 연결된 __try 블록을 순차적으로 떠났는지 여부를 나타냅니다. 이 함수는 종료 처리기의 __finally 블록 내에서만 호출할 수 있습니다. |