Альтернатива для нескольких попыток catch для обработки исключения

Я пытаюсь прочитать CSV-файл с 20 столбцами, которые могут содержать или не содержать значения, но проблема в том, что мне нужно создать 20 попыток перехвата, чтобы поддерживать поток кода в контролируемом режиме. подобно

String a = ""; loop
try{
a = list.get(0);  // converted the csv to list of list and iterated in 
}catch(NoSuchElementException e){}

и то же самое для любой другой переменной. Причина, по которой у меня есть отдельная попытка поймать, потому что в приведенном ниже коде

 String a = ""; 
 String b = ""; 
 try{
    a = list.get(0);
    b = list.get(1);
 }catch(NoSuchElementException e){}

Если первая строка попытки выдала исключение, вторая строка не будет выполнена.

Так есть ли какая-нибудь альтернатива этим n попыткам поймать ситуацию?

Спасибо

1 ответ

Решение

Вы можете создать вспомогательный метод:

private String getField(List<String> list, int n) {
  try {
    return list.get(n);
  } catch (NoSuchElementException e) {
    return "";
  }
}

String a = getField(list, 0);
String b = getField(list, 1);

РЕДАКТИРОВАТЬ:

Как правило, вы не будете полагаться на исключения, если у вас нет достаточных полей, следующее достигает того же, но субъективно чувствует себя чище:

private String getField(List<String> list, int n) {
  if (n < list.size()) {
    return list.get(n);
  }
  return "";
}
Другие вопросы по тегам