AddHandler() public method

Add a handler to this try block
public AddHandler ( HandlerBlock handler ) : void
handler HandlerBlock a handler to be added to the try block
return void
示例#1
0
文件: PERWAPI.cs 项目: nomit007/f4
 /// <summary>
 /// Mark this position as the end of the last started block and
 /// make it a finally block.  This finally block is associated with the
 /// specified try block.
 /// </summary>
 /// <param name="tryBlock">the try block associated with this finally block</param>
 public void EndFinallyBlock(TryBlock tryBlock)
 {
     Finally finBlock= new Finally((CILLabel)blockStack.Pop(),NewCodedLabel());
     tryBlock.AddHandler(finBlock);
 }
示例#2
0
文件: PERWAPI.cs 项目: nomit007/f4
 /// <summary>
 /// Mark this position as the end of the last started block and
 /// make it a filter block.  This filter block is associated with the
 /// specified try block.  The format is:
 /// filterLab:   ...
 ///              ...
 /// filterHandler :  ...
 ///                  ...
 /// </summary>
 /// <param name="filterLab">the label where the filter code is</param>
 /// <param name="tryBlock">the try block associated with this filter block</param>
 public void EndFilterBlock(CILLabel filterLab, TryBlock tryBlock)
 {
     Filter filBlock = new Filter(filterLab,(CILLabel)blockStack.Pop(),NewCodedLabel());
     tryBlock.AddHandler(filBlock);
 }
示例#3
0
文件: PERWAPI.cs 项目: nomit007/f4
 /// <summary>
 /// Mark this position as the end of the last started block and
 /// make it a catch block.  This catch block is associated with the
 /// specified try block.
 /// </summary>
 /// <param name="exceptType">the exception type to be caught</param>
 /// <param name="tryBlock">the try block associated with this catch block</param>
 public void EndCatchBlock(Class exceptType, TryBlock tryBlock)
 {
     Catch catchBlock = new Catch(exceptType,(CILLabel)blockStack.Pop(), NewCodedLabel());
     tryBlock.AddHandler(catchBlock);
 }
示例#4
0
文件: PERWAPI.cs 项目: nomit007/f4
 /// <summary>
 /// Mark this position as the end of the last started block and
 /// make it a fault block.  This fault block is associated with the
 /// specified try block.
 /// </summary>
 /// <param name="tryBlock">the try block associated with this fault block</param>
 public void EndFaultBlock(TryBlock tryBlock)
 {
     Fault fBlock= new Fault((CILLabel)blockStack.Pop(),NewCodedLabel());
     tryBlock.AddHandler(fBlock);
 }
示例#5
0
文件: PERWAPI.cs 项目: nomit007/f4
 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;
 }