public virtual void BeginExceptFilterBlock() { if (this.m_currExcStackCount == 0) { throw new NotSupportedException(Environment.GetResourceString("Argument_NotInExceptionBlock")); } __ExceptionInfo info = this.m_currExcStack[this.m_currExcStackCount - 1]; Label endLabel = info.GetEndLabel(); this.Emit(OpCodes.Leave, endLabel); info.MarkFilterAddr(this.m_length); }
// // // Exception related generation // // public override void BeginExceptFilterBlock() { // Begins an exception filter block. Emits a branch instruction to the end of the current exception block. if (CurrExcStackCount == 0) { throw new NotSupportedException(SR.Argument_NotInExceptionBlock); } __ExceptionInfo current = CurrExcStack[CurrExcStackCount - 1]; Label endLabel = current.GetEndLabel(); Emit(OpCodes.Leave, endLabel); UpdateStackSize(OpCodes.Nop, 1); current.MarkFilterAddr(ILOffset); }