이거 예외처리하는거 맞지?
어떻게 돌아가는건지 눈앞이 막막하다
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)});
}
하나씩 따라가봐야지 뭘