System.Reflection.Emit.__ExceptionInfo.GetFinallyEndLabel C# (CSharp) Method

GetFinallyEndLabel() private method

private GetFinallyEndLabel ( ) : Label
return Label
        internal virtual Label GetFinallyEndLabel() {
            return m_finallyEndLabel;
        }

Usage Example

        public virtual void EndExceptionBlock()
        {
            if (this.m_currExcStackCount == 0)
            {
                throw new NotSupportedException(Environment.GetResourceString("Argument_NotInExceptionBlock"));
            }
            __ExceptionInfo info = this.m_currExcStack[this.m_currExcStackCount - 1];

            this.m_currExcStack[this.m_currExcStackCount - 1] = null;
            this.m_currExcStackCount--;
            Label endLabel = info.GetEndLabel();

            switch (info.GetCurrentState())
            {
            case 1:
            case 0:
                throw new InvalidOperationException(Environment.GetResourceString("Argument_BadExceptionCodeGen"));

            case 2:
                this.Emit(OpCodes.Leave, endLabel);
                break;

            case 3:
            case 4:
                this.Emit(OpCodes.Endfinally);
                break;
            }
            if (this.m_labelList[endLabel.GetLabelValue()] == -1)
            {
                this.MarkLabel(endLabel);
            }
            else
            {
                this.MarkLabel(info.GetFinallyEndLabel());
            }
            info.Done(this.m_length);
        }