private static void removeExceptionInstructionsEx(BasicBlock block, int blockType, int finallyType) {
    InstructionSequence seq = block.getSeq();

    if (finallyType == 3) { // empty finally handler
      for (int i = seq.length() - 1; i >= 0; i--) {
        seq.removeInstruction(i);
      }
    }
    else {
      if ((blockType & 1) > 0) { // first
        if (finallyType == 2 || finallyType == 1) { // `AStore` or `Pop`
          seq.removeInstruction(0);
        }
      }

      if ((blockType & 2) > 0) { // last
        if (finallyType == 2 || finallyType == 0) {
          seq.removeLast();
        }

        if (finallyType == 2) { // `AStore`
          seq.removeLast();
        }
      }
    }
  }
private static void removeExceptionInstructionsEx(BasicBlock block, int blockType, int finallyType)