다음을 통해 공유


RpcExcept 매크로(rpc.h)

RpcExcept 문은 RPC 애플리케이션에 대한 구조적 예외 처리를 제공합니다.

Windows Vista 이상 버전의 Windows: RpcExceptionFilterRpcExcept를 사용하는 사용자 지정 필터 대신 가장 일반적인 예외에 대한 구조적 예외 처리에 권장됩니다. 그러나 사용자 지정 예외 필터는 여전히 RpcExcept를 사용해야 합니다.

구문

void RpcExcept(
   expr
);

매개 변수

expr

예외가 발생할 때 계산되는 식입니다. 이 0이 아닌 값으로 계산되면 예외 문이 실행됩니다. 이 0 값으로 계산되면 해제는 다음 RpcTryExcept 또는 RpcTryFinally 함수로 계속됩니다.

반환 값

없음

설명

예외가 발생하지 않으면 예외 문을 건너뛰고 RpcEndExcept 문 다음에 나오는 문에서 실행이 계속됩니다.

RpcTryExcept 절 뒤의 복합 문은 본문 또는 보호된 섹션입니다. RpcExcept 절 뒤의 복합 문은 예외 처리기입니다. 처리기는 보호된 섹션 본문을 실행하는 동안 예외가 발생하는 경우 수행할 일련의 작업을 지정합니다. 다음과 같이 실행됩니다.

  1. 보호된 섹션이 실행됩니다.
  2. 보호된 섹션을 실행하는 동안 예외가 발생하지 않으면 RpcEndExcept 절 이후 문에서 실행이 계속됩니다.
  3. 보호된 섹션을 실행하는 동안 또는 보호된 섹션이 호출하는 루틴에서 예외가 발생하면 __except 식이 평가되고 값에 따라 예외 처리 방법이 결정됩니다. 다음과 같은 세 가지 값이 있습니다.
    • EXCEPTION_CONTINUE_EXECUTION(–1) 예외가 해제되었습니다. 예외가 발생한 지점에서 계속 실행합니다.
    • EXCEPTION_CONTINUE_SEARCH (0) 예외가 인식되지 않습니다. try-except 문을 포함하는 처리기를 먼저 검색한 후, 그 다음으로 우선 순위가 높은 처리기를 검색하는 순으로 처리기 스택을 계속 검색합니다.
    • 예외가 인식됩니다. __except 복합 문을 실행하여 예외 처리기로 제어를 전송한 다음, __except 블록 이후에 실행을 계속합니다.
RpcExcept 식은 C 식으로 계산되므로 단일 값, 조건식 연산자 또는 쉼표 연산자로 제한됩니다. 더 광범위한 처리가 필요한 경우 식은 위에 나열된 세 값 중 하나를 반환하는 루틴을 호출할 수 있습니다.

RpcExceptionCode 문과 예외 문 모두에서 사용하여 발생한 예외를 확인할 수 있습니다.

다음 제한 사항이 적용됩니다.

  • ( goto를 통해) 보호된 문 으로 점프하는 것은 허용되지 않습니다.
  • 예외 문으로 이동(goto를 통해)은 허용되지 않습니다.
  • 보호된 문에서 반환 또는 점프(goto를 통해)는 허용되지 않습니다.
  • 예외 문에서 반환 또는 점프(goto를 통해)는 허용되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 rpc.h

추가 정보

예외 처리

RpcExceptionCode

RpcExceptionFilter

RpcFinally

RpcRaiseException