internal TryBlock MakeTryBlock(ArrayList labels)
{
TryBlock tBlock = new TryBlock(CILInstructions.GetLabel(labels,tryOffset),
CILInstructions.GetLabel(labels,tryOffset + tryLength));
CILLabel hStart = CILInstructions.GetLabel(labels,handlerOffset);
CILLabel hEnd = CILInstructions.GetLabel(labels,handlerOffset+handlerLength);
HandlerBlock handler = null;
switch (clauseType) {
case (EHClauseType.Exception) :
handler = new Catch((Class)classToken,hStart,hEnd);
break;
case (EHClauseType.Filter) :
handler = new Filter(CILInstructions.GetLabel(labels,filterOffset),hStart,hEnd);
break;
case (EHClauseType.Finally) :
handler = new Finally(hStart,hEnd);
break;
case (EHClauseType.Fault) :
handler = new Fault(hStart,hEnd);
break;
}
tBlock.AddHandler(handler);
return tBlock;
}