2014-02-15 3 views
-1

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); 
    } 
} 

ответ

0

Броски: SQLException - если ошибка доступа к базе данных, этот метод вызываются на закрытое Заявлении или драйвер не поддерживает пакетное заявление. --- Что означает это утверждение.

Я не знаю, может ли он стать намного проще. Какую часть вы не понимаете?

Это говорит о том, что метод бросает SQLException в одном из следующих случаев: происходит ошибка доступа

  • базы данных,
  • этого метода вызываются на закрытое заявлении
  • драйвер не поддерживает пакетное заявление ,
+0

BatchUpdateException поймано, если мы также поймаем SQLException. Это необходимо? – user2077937

+0

'BatchUpdateException расширяет SQLException', поэтому, если вы поймаете последнее, вам не нужно поймать первое, если вы не хотите относиться к нему по-другому –

Смежные вопросы