이거 예외처리하는거 맞지?
어떻게 돌아가는건지 눈앞이 막막하다

public void ruleExecute(HttpServletRequest request, IListMap listMap)
   throws Exception {

  Map<Object, Object> paramMap = listMap.getParameterMap();
  List list = listMap.getDataList("ds_List");
  int size = list.size();
  String shmptNo = "";
  String tmsReleScd = "010";
  int releScd = 0;
  String msg = "";
  int total = size;
  int scd_010 = 0;
  int scd_020 = 0;
  int scd_030 = 0;
  int scd_040 = 0;
  int scd_050 = 0;
  int scd_060 = 0;
  int scd_070 = 0;
  int scd_080 = 0;
  int scd_090 = 0;

  for (int i = 0; i < size; i++) {
   Map<Object, Object> pMap = (Map) list.get(i);
   paramMap.put("PRGS_MSG_CHECK", "");
   paramMap.put("SHMPT_NO", "");
   pMap.put("SHMPT_NO", "");
   tmsReleScd = "010";
   msg = "";
   try {
    // to release
    scd_010++;
    TORelease(paramMap, pMap);
    releScd = 1;

    // PLANGROUP ATTACH
    planGroupAttach(paramMap, pMap, tmsReleScd);

    tmsReleScd = selectRule(listMap);
    scd_020++;
    releScd++;

    newShipment(paramMap, pMap, tmsReleScd);
    scd_030++;
    releScd++;
    
    // Rating
    shmptNo = rating(paramMap, pMap, tmsReleScd);
    scd_040++;
    releScd++;
    pMap.put("SHMPT_NO", shmptNo);

    // Shipment Confirm
    shipmentConfirm(paramMap, pMap, tmsReleScd);
    scd_050++;
    releScd++;
    
    // Tender Request
    tenderRequest(request, paramMap, pMap, tmsReleScd);
    scd_060++;
    releScd++;
   } catch (ExeException e) {
    int errorCode = e.getCode();
    if (errorCode < -1) {
     msg = selectRulePlanMsg(e.getCode(),
       (String) paramMap.get("GV_LANG"));
    } else {
     msg = e.getMessage();

    }
    if(msg.length() > 300){
     msg = msg.substring(0, 300);
    }
   } finally {
    if (!msg.equals("RELEASE ERROR")) {
     TransactionStatus ts = null;
     
     try{
     ts = startTransaction();
     java.text.DecimalFormat df = new java.text.DecimalFormat("000");
     tmsReleScd = df.format(releScd*10);
             
     pMap.put("TMS_RELE_SCD", tmsReleScd);
     pMap.put("PRGS_MSG", msg);
     updatePlanRuleMsg(pMap);
     commitTransaction(ts);
     }catch(Exception e){
      e.printStackTrace();
      rollbackTransaction(ts);
     }
    }
   }

  }
  
  scd_030 = scd_020;
  scd_050 = scd_040;
  
  throw new ExeException(-101312, new String[]{String.valueOf(scd_010), String.valueOf(scd_030), String.valueOf(scd_050), String.valueOf(scd_060), String.valueOf(scd_070)});
 }