OpCodes.Endfinally 필드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
예외 블록의 fault
절이나 finally
절에서 CLI(공용 언어 인프라) 예외 처리기로 다시 제어를 전달합니다.
public: static initonly System::Reflection::Emit::OpCode Endfinally;
public static readonly System.Reflection.Emit.OpCode Endfinally;
staticval mutable Endfinally : System.Reflection.Emit.OpCode
Public Shared ReadOnly Endfinally As OpCode
필드 값
설명
다음 표에는 간단한 참조 요약과 함께 명령의 16진수 및 MSIL(Microsoft Intermediate Language) 어셈블리 형식이 나와 있습니다.
서식 | 어셈블리 형식 | Description |
---|---|---|
DC | 끝으로 endfault |
예외 블록의 finally 또는 fault 절을 종료합니다. |
이 명령에 대한 스택 전환 동작은 없습니다.
Endfinally
및 endfault
는 예외 처리기가 호출될 때까지 스택 해제가 계속될 수 있도록 또는 fault
절의 끝을 finally
신호로 보냅니다.
endfinally
또는 endfault
명령은 컨트롤을 CLI 예외 메커니즘으로 다시 전송합니다. 그런 다음, 보호된 블록이 종료 명령으로 종료된 경우 메커니즘은 체인에서 다음 finally
절을 검색합니다. 보호된 블록이 예외로 종료된 경우 CLI는 다음 finally
또는 fault
를 검색하거나 예외 처리의 첫 번째 단계에서 선택한 예외 처리기를 입력합니다.
endfinally
명령은 블록 내에서 finally
어휘로만 나타날 수 있습니다. 명령과 endfilter
달리 블록이 명령으로 endfinally
끝나야 한다는 요구 사항은 없으며 블록 내에 필요한 만큼의 endfinally
명령이 있을 수 있습니다. 이러한 제한 사항은 명령 및 블록에 endfault
fault
적용됩니다.
예외 메커니즘을 제외하고는 컨트롤을 finally
(또는 fault
) 블록으로 전송할 수 없습니다. 명령을 사용 throw
하거나 (또는 ) 명령을 실행하는 경우를 finally
제외하고는 (또는 fault
endfault
) 블록에서 컨트롤을 endfinally
전송할 수 없습니다. 특히 (또는 ) 블록에서 finally
"제외"하거나 (또는 fault
fault
) 블록 내에서 finally
또는 Leave 명령을 실행할 Ret 수 없습니다.
및 endfinally
지침은 endfault
별칭이며 동일한 opcode에 해당합니다.
다음 Emit 메서드 오버로드는 (endfault
) opcode와 메서드 EndExceptionBlock를 ILGenerator
사용할 endfinally
수 있습니다.
적용 대상
.NET