executeBatch() выдаст два исключения SQLException и BatchUpdateException. Нужна помощь в том, как обрабатывать это исключение.executeBatch Обработка исключений
Мы выполняем лимит на 900 партий и ограничение фиксации 150 для распределенной среды. Обработано только единственное исключение BatchUpdateException. Ниже приведен фрагмент кода. Может ли кто-нибудь выяснить, нужно ли нам перехватывать SQLException. Если SQLException не пойман, то какой результат.
Throws: SQLException - при возникновении ошибки доступа к базе данных этот метод вызывается в закрытом заявлении или драйвер не поддерживает пакетные операторы. --- Что означает это утверждение.
} catch (BatchUpdateException be) {
status = "failure";
errorDesc = "BatchUpdateException";
errorCode = "-1";
checkpoint = "12";
log.debug(DealerId + "->BatchException be:" + be + ", checkpoint: " + checkpoint
+ ",con: " + con + ",db2con: " + db2Con);
int[] updateStatus = be.getUpdateCounts();
if (updateStatus != null) {
ArrayList<String> failedList = new ArrayList<String>();
try {
verifyUpdateCount(updateStatus, failedList, batchQueryList, queryList);
} catch (Exception e) {
if (failedList.size() > 0) {
log.debug(DealerId + "->updateStatus Exception queryList size:"
+ queryList.size());
queryList.clear();
queryList.addAll(failedList);
}
log.debug(DealerId + "->updateStatus Exception e:" + e + ", checkpoint: "
+ checkpoint + "con: " + con + "db2con: " + db2Con);
}
}
break END;
} finally {
try {
log.debug("norecords:" + noRecords);
if (!noRecords) {
closeStatements(ps, rs, rsShdw, db2Ps, stShdw);
}
} catch (Exception e) {
printCheckpoint(queryList, con, db2Con, "closeStatements Exception e: ", e,
checkpoint);
}
}
BatchUpdateException поймано, если мы также поймаем SQLException. Это необходимо? – user2077937
'BatchUpdateException расширяет SQLException', поэтому, если вы поймаете последнее, вам не нужно поймать первое, если вы не хотите относиться к нему по-другому –