Class TryCatchHandler
- Namespace
- ICSharpCode.Decompiler.IL
- Assembly
- ICSharpCode.Decompiler.dll
Catch handler within a try-catch statement.
public sealed class TryCatchHandler : ILInstruction, IStoreInstruction, IInstructionWithVariableOperand
- Inheritance
-
TryCatchHandler
- Implements
- Inherited Members
Constructors
TryCatchHandler(ILInstruction, ILInstruction, ILVariable)
public TryCatchHandler(ILInstruction filter, ILInstruction body, ILVariable variable)
Parameters
filter
ILInstructionbody
ILInstructionvariable
ILVariable
Fields
BodySlot
public static readonly SlotInfo BodySlot
Field Value
FilterSlot
public static readonly SlotInfo FilterSlot
Field Value
Properties
Body
public ILInstruction Body { get; set; }
Property Value
DirectFlags
Gets the flags for this instruction only, without considering the child instructions.
public override InstructionFlags DirectFlags { get; }
Property Value
ExceptionSpecifierILRange
Gets the ILRange of the instructions at the start of the catch-block, that take the exception object and store it in the exception variable slot. Note: This range is empty, if Filter is not empty, i.e., ldloc 1.
public Interval ExceptionSpecifierILRange { get; }
Property Value
Filter
public ILInstruction Filter { get; set; }
Property Value
IndexInStoreInstructionList
public int IndexInStoreInstructionList { get; set; }
Property Value
ResultType
Gets the stack type of the value produced by this instruction.
public override StackType ResultType { get; }
Property Value
Variable
public ILVariable Variable { get; set; }
Property Value
Methods
AcceptVisitor(ILVisitor)
Calls the Visit*-method on the visitor corresponding to the concrete type of this instruction.
public override void AcceptVisitor(ILVisitor visitor)
Parameters
visitor
ILVisitor
AcceptVisitor<T>(ILVisitor<T>)
Calls the Visit*-method on the visitor corresponding to the concrete type of this instruction.
public override T AcceptVisitor<T>(ILVisitor<T> visitor)
Parameters
visitor
ILVisitor<T>
Returns
- T
Type Parameters
T
AcceptVisitor<C, T>(ILVisitor<C, T>, C)
Calls the Visit*-method on the visitor corresponding to the concrete type of this instruction.
public override T AcceptVisitor<C, T>(ILVisitor<C, T> visitor, C context)
Parameters
visitor
ILVisitor<C, T>context
C
Returns
- T
Type Parameters
C
T
AddExceptionSpecifierILRange(Interval)
public void AddExceptionSpecifierILRange(Interval newRange)
Parameters
newRange
Interval
Clone()
public override sealed ILInstruction Clone()
Returns
ComputeFlags()
protected override InstructionFlags ComputeFlags()
Returns
Connected()
Called after the ILInstruction was connected to the root node of the ILAst.
protected override void Connected()
Disconnected()
Called after the ILInstruction was disconnected from the root node of the ILAst.
protected override void Disconnected()
GetChild(int)
protected override sealed ILInstruction GetChild(int index)
Parameters
index
int
Returns
GetChildCount()
protected override sealed int GetChildCount()
Returns
GetChildSlot(int)
protected override sealed SlotInfo GetChildSlot(int index)
Parameters
index
int
Returns
PerformMatch(ILInstruction?, ref Match)
protected override bool PerformMatch(ILInstruction? other, ref Match match)
Parameters
other
ILInstructionmatch
Match
Returns
SetChild(int, ILInstruction)
protected override sealed void SetChild(int index, ILInstruction value)
Parameters
index
intvalue
ILInstruction
WriteTo(ITextOutput, ILAstWritingOptions)
Writes the ILAst to the text output.
public override void WriteTo(ITextOutput output, ILAstWritingOptions options)
Parameters
output
ITextOutputoptions
ILAstWritingOptions